Purchase MAX hacknet nodes now works. Huge rebalancing of Augmentations, made most augmentations a little bit stronger

This commit is contained in:
Daniel Xie 2017-05-16 22:50:32 -05:00
parent 47e4f5b9dd
commit 2823a1ffa1
6 changed files with 235 additions and 152 deletions

@ -176,9 +176,7 @@
.hacknet-node {
margin: 6px;
padding: 6px;
width: 85%;
border: 2px solid white;
-webkit-box-shadow:
inset 0 0 8px rgba(0,0,0,0.1),

@ -104,8 +104,8 @@ tr:focus {
text-decoration: none;
background-color: #333;
color: #FFFFFF;
padding: 6px;
margin: 6px;
padding: 5px;
margin: 5px;
border-top: 1px solid #333333;
border-right: 1px solid #333333;
border-bottom: 1px solid #333333;

@ -185,7 +185,6 @@
<a id="hacknet-nodes-1x-multiplier" class="a-link-button-inactive"> x1 </a>
<a id="hacknet-nodes-5x-multiplier" class="a-link-button"> x5 </a>
<a id="hacknet-nodes-10x-multiplier" class="a-link-button"> x10 </a>
<a id="hacknet-nodes-100x-multiplier" class="a-link-button"> x100 </a>
<a id="hacknet-nodes-max-multiplier" class="a-link-button"> MAX </a>
</span>
</div>

@ -127,7 +127,7 @@ initAugmentations = function() {
//Combat stat augmentations
var HemoRecirculator = new Augmentation(AugmentationNames.HemoRecirculator);
HemoRecirculator.setInfo("A heart implant that greatly increases the body's ability to effectively use and pump " +
"blood. <br><br> This augmentation increases all of the player's combat stats by 10%.")
"blood. <br><br> This augmentation increases all of the player's combat stats by 15%.")
HemoRecirculator.setRequirements(6000, 10000000);
HemoRecirculator.addToFactions(["Tetrads", "The Dark Army", "The Syndicate"]);
if (augmentationExists(AugmentationNames.HemoRecirculator)) {
@ -141,7 +141,7 @@ initAugmentations = function() {
Targeting1.setInfo("This cranial implant is embedded within the player's inner ear structure and optic nerves. It regulates and enhances the user's " +
"balance and hand-eye coordination. It is also capable of augmenting reality by projecting digital information " +
"directly onto the retina. These enhancements allow the player to better lock-on and keep track of enemies. <br><br>" +
"This augmentation increases the player's dexterity by 10%.");
"This augmentation increases the player's dexterity by 20%.");
Targeting1.addToFactions(["Slum Snakes", "The Dark Army", "The Syndicate", "Sector-12", "Volhaven", "Ishima",
"OmniTek Incorporated", "KuaiGong International", "Blade Industries"]);
if (augmentationExists(AugmentationNames.Targeting1)) {
@ -154,7 +154,7 @@ initAugmentations = function() {
Targeting2.setRequirements(4000, 9000000);
Targeting2.setInfo("This is an upgrade of the Augmented Targeting I cranial implant, which is capable of augmenting reality " +
"and enhances the user's balance and hand-eye coordination. <br><br>This upgrade increases the player's dexterity " +
"by an additional 20%.");
"by an additional 30%.");
Targeting2.addToFactions(["The Dark Army", "The Syndicate", "Sector-12", "Volhaven", "Ishima",
"OmniTek Incorporated", "KuaiGong International", "Blade Industries"]);
if (augmentationExists(AugmentationNames.Targeting2)) {
@ -207,7 +207,7 @@ initAugmentations = function() {
CombatRib1.setRequirements(3500, 5000000);
CombatRib1.setInfo("The human body's ribs are replaced with artificial ribs that automatically and continuously release cognitive " +
"and performance-enhancing drugs into the bloodstream, improving the user's abilities in combat.<br><br>" +
"This augmentation increases the player's strength and defense by 10%.");
"This augmentation increases the player's strength and defense by 15%.");
CombatRib1.addToFactions(["Slum Snakes", "The Dark Army", "The Syndicate", "Sector-12", "Volhaven", "Ishima",
"OmniTek Incorporated", "KuaiGong International", "Blade Industries"]);
if (augmentationExists(AugmentationNames.CombatRib1)) {
@ -219,7 +219,7 @@ initAugmentations = function() {
var CombatRib2 = new Augmentation(AugmentationNames.CombatRib2);
CombatRib2.setRequirements(8000, 12000000);
CombatRib2.setInfo("This is an upgrade to the Combat Rib I augmentation, and is capable of releasing even more potent combat-enhancing " +
"drugs into the bloodstream<br><br>. This upgrade increases the player's strength and defense by an additional 20%.")
"drugs into the bloodstream<br><br>. This upgrade increases the player's strength and defense by an additional 25%.")
CombatRib2.addToFactions(["The Dark Army", "The Syndicate", "Sector-12", "Volhaven", "Ishima",
"OmniTek Incorporated", "KuaiGong International", "Blade Industries"]);
if (augmentationExists(AugmentationNames.CombatRib2)) {
@ -231,7 +231,7 @@ initAugmentations = function() {
var CombatRib3 = new Augmentation(AugmentationNames.CombatRib3);
CombatRib3.setRequirements(12000, 18000000);
CombatRib3.setInfo("This is an upgrade to the Combat Rib II augmentation, and is capable of releasing even more potent combat-enhancing " +
"drugs into the bloodstream<br><br>. This upgrade increases the player's strength and defense by an additional 30%.");
"drugs into the bloodstream<br><br>. This upgrade increases the player's strength and defense by an additional 35%.");
CombatRib3.addToFactions(["The Dark Army", "The Syndicate", "OmniTek Incorporated",
"KuaiGong International", "Blade Industries", "The Covenant"]);
if (augmentationExists(AugmentationNames.CombatRib3)) {
@ -273,7 +273,7 @@ initAugmentations = function() {
WiredReflexes.setRequirements(600, 500000);
WiredReflexes.setInfo("Synthetic nerve-enhancements are injected into all major parts of the somatic nervous system, " +
"supercharging the body's ability to send signals through neurons. This results in increased reflex speed.<br><br>" +
"This augmentation increases the player's agility and dexterity by 5%.");
"This augmentation increases the player's agility and dexterity by 10%.");
WiredReflexes.addToFactions(["Tian Di Hui", "Slum Snakes", "Sector-12", "Volhaven", "Aevum", "Ishima",
"The Syndicate", "The Dark Army", "Speakers for the Dead"]);
if (augmentationExists(AugmentationNames.WiredReflexes)) {
@ -324,7 +324,7 @@ initAugmentations = function() {
var BionicLegs = new Augmentation(AugmentationNames.BionicLegs);
BionicLegs.setRequirements(100000, 60000000);
BionicLegs.setInfo("Cybernetic legs created from plasteel and carbon fibers that completely replace the user's organic legs. <br><br>" +
"This augmentation increases the player's agility by 50%.");
"This augmentation increases the player's agility by 75%.");
BionicLegs.addToFactions(["Speakers for the Dead", "The Syndicate", "KuaiGong International",
"OmniTek Incorporated", "Blade Industries"]);
if (augmentationExists(AugmentationNames.BionicLegs)) {
@ -337,7 +337,7 @@ initAugmentations = function() {
GrapheneBionicLegs.setRequirements(400000, 800000000);
GrapheneBionicLegs.setInfo("An upgrade to the Bionic Legs augmentation. It fuses the implant with an advanced graphene " +
"material to make it much stronger and lighter.<br><br>" +
"This augmentation increases the player's agility by an additional 150%.");
"This augmentation increases the player's agility by an additional 200%.");
GrapheneBionicLegs.addToFactions(["MegaCorp", "ECorp", "Fulcrum Secret Technologies"]);
if (augmentationExists(AugmentationNames.GrapheneBionicLegs)) {
GrapheneBionicLegs.owned = Augmentations[AugmentationNames.GrapheneBionicLegs].owned;
@ -393,7 +393,7 @@ initAugmentations = function() {
var BitWire = new Augmentation(AugmentationNames.BitWire);
BitWire.setRequirements(1750, 2000000);
BitWire.setInfo("A small brain implant embedded in the cerebrum. This regulates and improves the brain's computing " +
"capabilities. <br><br> This augmentation increases the player's hacking skill by 5%");
"capabilities. <br><br> This augmentation increases the player's hacking skill by 10%");
BitWire.addToFactions(["CyberSec", "BitRunners", "NiteSec"]);
if (augmentationExists(AugmentationNames.BitWire)) {
BitWire.owned = Augmentations[AugmentationNames.BitWire].owned;
@ -409,9 +409,9 @@ initAugmentations = function() {
"nanoprocessors are programmed to perform computations much faster than organic neurons, " +
"allowing its user to solve much more complex problems at a much faster rate.<br><br>" +
"This augmentation:<br>" +
"Increases the player's hacking speed by 2%<br>" +
"Increases the player's hacking speed by 3%<br>" +
"Increases the amount of money the player's gains from hacking by 10%<br>" +
"Inreases the player's hacking skill by 10%");
"Inreases the player's hacking skill by 15%");
ArtificialBioNeuralNetwork.addToFactions(["BitRunners", "Fulcrum Secret Technologies"]);
if (augmentationExists(AugmentationNames.ArtificialBioNeuralNetwork)) {
ArtificialBioNeuralNetwork.owned = Augmentations[AugmentationNames.ArtificialBioNeuralNetwork].owned;
@ -423,7 +423,7 @@ initAugmentations = function() {
ArtificialSynapticPotentiation.setRequirements(2500, 15000000);
ArtificialSynapticPotentiation.setInfo("The body is injected with a chemical that artificially induces synaptic potentiation, " +
"otherwise known as the strengthening of synapses. This results in a enhanced cognitive abilities.<br><br>" +
"This augmentation increases the player's hacking speed and hacking chance by 2%.");
"This augmentation increases the player's hacking speed and hacking chance by 3%.");
ArtificialSynapticPotentiation.addToFactions(["The Black Hand", "NiteSec"]);
if (augmentationExists(AugmentationNames.ArtificialSynapticPotentiation)) {
ArtificialSynapticPotentiation.owned = Augmentations[AugmentationNames.ArtificialSynapticPotentiation].owned;
@ -438,9 +438,9 @@ initAugmentations = function() {
"system. These myelin sheaths can propogate neuro-signals much faster than their organic " +
"counterparts, leading to greater processing speeds and better brain function.<br><br>" +
"This augmentation:<br>" +
"Increases the player's hacking speed by 1%<br>" +
"Increases the player's hacking speed by 2%<br>" +
"Increases the player's hacking skill by 5%<br>" +
"Increases the player's hacking experience gain rate by 5%");
"Increases the player's hacking experience gain rate by 10%");
EnhancedMyelinSheathing.addToFactions(["Fulcrum Secret Technologies", "BitRunners", "The Black Hand"]);
if (augmentationExists(AugmentationNames.EnhancedMyelinSheathing)) {
EnhancedMyelinSheathing.owned = Augmentations[AugmentationNames.EnhancedMyelinSheathing].owned;
@ -452,7 +452,7 @@ initAugmentations = function() {
SynapticEnhancement.setRequirements(900, 1200000);
SynapticEnhancement.setInfo("A small cranial implant that continuously uses weak electric signals to stimulate the brain and " +
"induce stronger synaptic activity. This improves the user's cognitive abilities.<br><br>" +
"This augmentation increases the player's hacking speed by 1%.");
"This augmentation increases the player's hacking speed by 3%.");
SynapticEnhancement.addToFactions(["CyberSec"]);
if (augmentationExists(AugmentationNames.SynapticEnhancement)) {
SynapticEnhancement.owned = Augmentations[AugmentationNames.SynapticEnhancement].owned;
@ -477,7 +477,7 @@ initAugmentations = function() {
DataJack.setInfo("A brain implant that provides an interface for direct, wireless communication between a computer's main " +
"memory and the mind. This implant allows the user to not only access a computer's memory, but also alter " +
"and delete it.<br><br>" +
"This augmentation increases the amount of money the player gains from hacking by 20%");
"This augmentation increases the amount of money the player gains from hacking by 25%");
DataJack.addToFactions(["BitRunners", "The Black Hand", "NiteSec", "Chongqing", "New Tokyo"]);
if (augmentationExists(AugmentationNames.DataJack)) {
DataJack.owned = Augmentations[AugmentationNames.DataJack].owned;
@ -492,7 +492,7 @@ initAugmentations = function() {
"processing all of the traffic on that network. By itself, the Embedded Netburner Module does " +
"not do much, but a variety of very powerful upgrades can be installed that allow you to fully " +
"control the traffic on a network.<br><br>" +
"This augmentation increases the player's hacking skill by 2%");
"This augmentation increases the player's hacking skill by 10%");
ENM.addToFactions(["BitRunners", "The Black Hand", "NiteSec", "ECorp", "MegaCorp",
"Fulcrum Secret Technologies", "NWO", "Blade Industries"]);
if (augmentationExists(AugmentationNames.ENM)) {
@ -506,11 +506,11 @@ initAugmentations = function() {
ENMCore.setInfo("The Core library is an implant that upgrades the firmware of the Embedded Netburner Module. " +
"This upgrade allows the Embedded Netburner Module to generate its own data on a network.<br><br>" +
"This augmentation:<br>" +
"Increases the player's hacking speed by 2%<br>" +
"Increases the player's hacking speed by 3%<br>" +
"Increases the amount of money the player gains from hacking by 10%<br>" +
"Increases the player's chance of successfully performing a hack by 2%<br>" +
"Increases the player's chance of successfully performing a hack by 3%<br>" +
"Increases the player's hacking experience gain rate by 10%<br>" +
"Increases the player's hacking skill by 1%");
"Increases the player's hacking skill by 10%");
ENMCore.addToFactions(["BitRunners", "The Black Hand", "NiteSec", "ECorp", "MegaCorp",
"Fulcrum Secret Technologies", "NWO", "Blade Industries"]);
if (augmentationExists(AugmentationNames.ENMCore)) {
@ -530,7 +530,7 @@ initAugmentations = function() {
"Increases the amount of money the player gains from hacking by 50%<br>" +
"Increases the player's chance of successfully performing a hack by 5%<br>" +
"Increases the player's hacking experience gain rate by 50%<br>" +
"Increases the player's hacking skill by 5%");
"Increases the player's hacking skill by 15%");
ENMCoreV2.addToFactions(["ECorp", "MegaCorp", "Fulcrum Secret Technologies", "NWO",
"Blade Industries", "OmniTek Incorporated", "KuaiGong International"]);
if (augmentationExists(AugmentationNames.ENMCoreV2)) {
@ -549,7 +549,7 @@ initAugmentations = function() {
"Increases the amount of money the player gains from hacking by 50%<br>" +
"Increases the player's chance of successfully performing a hack by 10%<br>" +
"Increases the player's hacking experience gain rate by 100%<br>" +
"Increases the player's hacking skill by 10%");
"Increases the player's hacking skill by 20%");
ENMCoreV3.addToFactions(["ECorp", "MegaCorp", "Fulcrum Secret Technologies", "NWO",
"Daedalus", "The Covenant", "Illuminati"]);
if (augmentationExists(AugmentationNames.ENMCoreV3)) {
@ -592,9 +592,9 @@ initAugmentations = function() {
Neuralstimulator.setInfo("A cranial implant that intelligently stimulates certain areas of the brain " +
"in order to improve cognitive functions<br><br>" +
"This augmentation:<br>" +
"Increases the player's hacking speed by 1%<br>" +
"Increases the player's hacking speed by 2%<br>" +
"Increases the player's chance of successfully performing a hack by 10%<br>" +
"Increases the player's hacking experience gain rate by 20%");
"Increases the player's hacking experience gain rate by 25%");
Neuralstimulator.addToFactions(["The Black Hand", "Chongqing", "Sector-12", "New Tokyo", "Aevum",
"Ishima", "Volhaven", "Bachman & Associates", "Clarke Incorporated",
"Four Sigma"]);
@ -611,7 +611,7 @@ initAugmentations = function() {
"the bloodstream to improve memory, increase focus, and provide other " +
"cognitive enhancements.<br><br>" +
"This augmentation increases the amount of reputation the player gains " +
"when working for a company by 15%.");
"when working for a company by 20%.");
NuoptimalInjectorImplant.addToFactions(["Tian Di Hui", "Volhaven", "New Tokyo", "Chongqing", "Ishima",
"Clarke Incorporated", "Four Sigma", "Bachman & Associates"]);
if (augmentationExists(AugmentationNames.NuoptimalInjectorImplant)) {
@ -626,8 +626,8 @@ initAugmentations = function() {
"you more convincing and likable in conversations and overall improving your " +
"social interactions.<br><br>" +
"This augmentation:<br>" +
"Increases the player's charisma by 5%<br>" +
"Increases the amount of reputation the player gains when working for a company by 5%");
"Increases the player's charisma by 10%<br>" +
"Increases the amount of reputation the player gains when working for a company by 10%");
SpeechEnhancement.addToFactions(["Tian Di Hui", "Speakers for the Dead", "Four Sigma", "KuaiGong International",
"Clarke Incorporated", "Four Sigma", "Bachman & Associates"]);
if (augmentationExists(AugmentationNames.SpeechEnhancement)) {
@ -642,8 +642,8 @@ initAugmentations = function() {
"in the brain.<br><br>" +
"This augmentation: <br>" +
"Increases all experience gains by 10%<br>" +
"Increases the amount of money the player gains from working by 5%<br>" +
"Increases the amount of reputation the player gains when working for a company by 5%");
"Increases the amount of money the player gains from working by 10%<br>" +
"Increases the amount of reputation the player gains when working for a company by 10%");
FocusWire.addToFactions(["Bachman & Associates", "Clarke Incorporated", "Four Sigma", "KuaiGong International"]);
if (augmentationExists(AugmentationNames.FocusWire)) {
FocusWire.owned = Augmentations[AugmentationNames.FocusWire].owned;
@ -657,7 +657,7 @@ initAugmentations = function() {
"computers. Connecting to a computer through this jack allows you to interface with " +
"it using the brain's electrochemical signals.<br><br>" +
"This augmentation:<br>" +
"Increases the amount of reputation the player gains when working for a company by 10%<br>" +
"Increases the amount of reputation the player gains when working for a company by 25%<br>" +
"Increases the player's hacking skill by 10%");
PCDNI.addToFactions(["Four Sigma", "OmniTek Incorporated", "ECorp", "Blade Industries"]);
if (augmentationExists(AugmentationNames.PCDNI)) {
@ -672,8 +672,8 @@ initAugmentations = function() {
"improves the performance of the interface and gives the user more control options " +
"to the connected computer.<br><br>" +
"This augmentation:<br>" +
"Increases the amount of reputation the player gains when working for a company by 20%<br>" +
"Increases the player's hacking skill by 20%");
"Increases the amount of reputation the player gains when working for a company by 25%<br>" +
"Increases the player's hacking skill by 25%");
PCDNIOptimizer.addToFactions(["Fulcrum Secret Technologies", "ECorp", "Blade Industries"]);
if (augmentationExists(AugmentationNames.PCDNIOptimizer)) {
PCDNIOptimizer.owned = Augmentations[AugmentationNames.PCDNIOptimizer].owned;
@ -688,9 +688,9 @@ initAugmentations = function() {
"The NeuroNet Injector upgrade allows the user to use his/her own brain's " +
"processing power to aid the computer in computational tasks.<br><br>" +
"This augmentation:<br>" +
"Increases the amount of reputation the player gains when working for a company by 10%<br>" +
"Increases the amount of reputation the player gains when working for a company by 50%<br>" +
"Increases the player's hacking skill by 10%<br>" +
"Increases the player's hacking speed by 2%");
"Increases the player's hacking speed by 5%");
PCDNINeuralNetwork.addToFactions(["Fulcrum Secret Technologies"]);
if (augmentationExists(AugmentationNames.PCDNINeuralNetwork)) {
PCDNINeuralNetwork.owned = Augmentations[AugmentationNames.PCDNINeuralNetwork].owned;
@ -699,7 +699,7 @@ initAugmentations = function() {
AddToAugmentations(PCDNINeuralNetwork);
var ADRPheromone1 = new Augmentation(AugmentationNames.ADRPheromone1);
ADRPheromone1.setRequirements(1500, 2000000);
ADRPheromone1.setRequirements(1250, 2000000);
ADRPheromone1.setInfo("The body is genetically re-engineered so that it produces the ADR-V1 pheromone, " +
"an artificial pheromone discovered by scientists. The ADR-V1 pheromone, when excreted, " +
"triggers feelings of admiration and approval in other people. <br><br>" +
@ -720,8 +720,8 @@ initAugmentations = function() {
"the brain. This allows the user to engineer custom hardware and software " +
"for the Hacknet Node that provides better performance.<br><br>" +
"This augmentation:<br>" +
"Increases the amount of money produced by Hacknet Nodes by 15%<br>" +
"Decreases the cost of purchasing a Hacknet Node Core by 10%");
"Increases the amount of money produced by Hacknet Nodes by 20%<br>" +
"Decreases the cost of purchasing a Hacknet Node Core by 15%");
HacknetNodeCPUUpload.addToFactions(["Netburners"]);
if (augmentationExists(AugmentationNames.HacknetNodeCPUUpload)) {
HacknetNodeCPUUpload.owned = Augmentations[AugmentationNames.HacknetNodeCPUUpload].owned;
@ -735,8 +735,8 @@ initAugmentations = function() {
"into the brain. This allows the user to engineer custom cache hardware for the " +
"Hacknet Node that offers better performance.<br><br>" +
"This augmentation:<br> " +
"Increases the amount of money produced by Hacknet Nodes by 10%<br>" +
"Decreases the cost of leveling up a Hacknet Node by 10%");
"Increases the amount of money produced by Hacknet Nodes by 15%<br>" +
"Decreases the cost of leveling up a Hacknet Node by 15%");
HacknetNodeCacheUpload.addToFactions(["Netburners"]);
if (augmentationExists(AugmentationNames.HacknetNodeCacheUpload)) {
HacknetNodeCacheUpload.owned = Augmentations[AugmentationNames.HacknetNodeCacheUpload].owned;
@ -750,8 +750,8 @@ initAugmentations = function() {
"into the brain. This allows the user to engineer a custom NIC for the Hacknet Node that " +
"offers better performance.<br><br>" +
"This augmentation:<br>" +
"Increases the amount of money produced by Hacknet Nodes by 5%<br>" +
"Decreases the cost of purchasing a Hacknet Node by 5%");
"Increases the amount of money produced by Hacknet Nodes by 10%<br>" +
"Decreases the cost of purchasing a Hacknet Node by 10%");
HacknetNodeNICUpload.addToFactions(["Netburners"]);
if (augmentationExists(AugmentationNames.HacknetNodeNICUpload)) {
HacknetNodeNICUpload.owned = Augmentations[AugmentationNames.HacknetNodeNICUpload].owned;
@ -802,7 +802,7 @@ initAugmentations = function() {
"essentially 'governing' the body. By doing so, it improves the functionality of the " +
"body's nervous system. <br><br> " +
"This is a special augmentation because it can be leveled up infinitely. Each level of this augmentation " +
"increases all of the player's stats and experience gains by 0.5%.")
"increases all of the player's stats and experience gains by 1%.")
NeuroFluxGovernor.addToAllFactions();
AddToAugmentations(NeuroFluxGovernor);
@ -812,7 +812,7 @@ initAugmentations = function() {
"installed by releasing millions of nanobots into the human brain, each of which " +
"attaches to a different neural pathway to enhance the brain's ability to retain " +
"and retrieve information.<br><br>" +
"This augmentation increases the player's experience gain rate for all stats by 5%");
"This augmentation increases the player's experience gain rate for all stats by 10%");
Neurotrainer1.addToFactions(["CyberSec"]);
if (augmentationExists(AugmentationNames.Neurotrainer1)) {
Neurotrainer1.owned = Augmentations[AugmentationNames.Neurotrainer1].owned;
@ -825,7 +825,7 @@ initAugmentations = function() {
Neurotrainer2.setInfo("A decentralized cranial implant that improves the brain's ability to learn. This " +
"is a more powerful version of the Neurotrainer I augmentation, but it does not " +
"require Neurotrainer I to be installed as a prerequisite.<br><br>" +
"This augmentation increases the player's experience gain rate for all stats by 10%");
"This augmentation increases the player's experience gain rate for all stats by 20%");
Neurotrainer2.addToFactions(["BitRunners", "NiteSec"]);
if (augmentationExists(AugmentationNames.Neurotrainer2)) {
Neurotrainer2.owned = Augmentations[AugmentationNames.Neurotrainer2].owned;
@ -838,7 +838,7 @@ initAugmentations = function() {
Neurotrainer3.setInfo("A decentralized cranial implant that improves the brain's ability to learn. This " +
"is a more powerful version of the Neurotrainer I and Neurotrainer II augmentation, " +
"but it does not require either of them to be installed as a prerequisite.<br><br>" +
"This augmentation increases the player's experience gain rate for all stats by 20%");
"This augmentation increases the player's experience gain rate for all stats by 30%");
Neurotrainer3.addToFactions(["NWO", "Four Sigma"]);
if (augmentationExists(AugmentationNames.Neurotrainer3)) {
Neurotrainer3.owned = Augmentations[AugmentationNames.Neurotrainer3].owned;
@ -852,7 +852,7 @@ initAugmentations = function() {
"through solid objects such as wells, thus providing 'x-ray vision'-like capabilities.<br><br>" +
"This augmentation: <br>" +
"Increases the player's dexterity by 50%<br>" +
"Increases the player's hacking speed by 1%<br>" +
"Increases the player's hacking speed by 3%<br>" +
"Increases the amount of money the player gains from hacking by 10%");
Hypersight.setRequirements(60000, 450000000);
Hypersight.addToFactions(["Blade Industries", "KuaiGong International"]);
@ -868,7 +868,7 @@ initAugmentations = function() {
"around the skin, making the user much harder to see from the naked eye. <br><br>" +
"This augmentation: <br>" +
"Increases the player's agility by 5% <br>" +
"Increases the amount of money the player gains from crimes by 5%");
"Increases the amount of money the player gains from crimes by 10%");
LuminCloaking1.setRequirements(600, 750000);
LuminCloaking1.addToFactions(["Slum Snakes", "Tetrads"]);
if (augmentationExists(AugmentationNames.LuminCloaking1)) {
@ -883,9 +883,9 @@ initAugmentations = function() {
"cells, when powered, are capable of not only bending light but also of bending heat, " +
"making the user more resilient as well as stealthy. <br><br>" +
"This augmentation: <br>" +
"Increases the player's agility by 5% <br>" +
"Increases the player's defense by 5% <br>" +
"Increases the amount of money the player gains from crimes by 15%");
"Increases the player's agility by 10% <br>" +
"Increases the player's defense by 10% <br>" +
"Increases the amount of money the player gains from crimes by 25%");
LuminCloaking2.setRequirements(2000, 4000000);
LuminCloaking2.addToFactions(["Slum Snakes", "Tetrads"]);
if (augmentationExists(AugmentationNames.LuminCloaking2)) {
@ -899,8 +899,8 @@ initAugmentations = function() {
"using sound propagation. <br><br>" +
"This augmentation: <br>" +
"Increases the player's dexterity by 10%<br>" +
"Increases the player's dexterity experience gain rate by 10%<br>" +
"Increases the amount of money the player gains from crimes by 20%");
"Increases the player's dexterity experience gain rate by 15%<br>" +
"Increases the amount of money the player gains from crimes by 25%");
SmartSonar.setRequirements(10000, 12000000);
SmartSonar.addToFactions(["Slum Snakes"]);
if (augmentationExists(AugmentationNames.SmartSonar)) {
@ -914,7 +914,7 @@ initAugmentations = function() {
"are capable of of capture wasted energy (in the form of heat) " +
"and converting it back into usable power. <br><br>" +
"This augmentation: <br>" +
"Increases all of the player's stats by 5%<br>" +
"Increases all of the player's stats by 10%<br>" +
"Increases the player's experience gain rate for all stats by 10%");
PowerRecirculator.setRequirements(20000, 50000000);
PowerRecirculator.addToFactions(["Tetrads", "The Dark Army", "The Syndicate", "NWO"]);
@ -934,10 +934,10 @@ applyAugmentation = function(aug, faction) {
switch(aug.name) {
//Combat stat augmentations
case AugmentationNames.Targeting1:
Player.dexterity_mult *= 1.1;
Player.dexterity_mult *= 1.2;
break;
case AugmentationNames.Targeting2:
Player.dexterity_mult *= 1.2;
Player.dexterity_mult *= 1.3;
break;
case AugmentationNames.Targeting3:
Player.dexterity_mult *= 1.5;
@ -952,16 +952,16 @@ applyAugmentation = function(aug, faction) {
break;
case AugmentationNames.CombatRib1:
//Str and Defense 5%
Player.strength_mult *= 1.1;
Player.defense_mult *= 1.1;
Player.strength_mult *= 1.15;
Player.defense_mult *= 1.15;
break;
case AugmentationNames.CombatRib2:
Player.strength_mult *= 1.2;
Player.defense_mult *= 1.2;
Player.strength_mult *= 1.25;
Player.defense_mult *= 1.25;
break;
case AugmentationNames.CombatRib3:
Player.strength_mult *= 1.3;
Player.defense_mult *= 1.3;
Player.strength_mult *= 1.35;
Player.defense_mult *= 1.35;
break;
case AugmentationNames.NanofiberWeave: //Med level
Player.strength_mult *= 1.3;
@ -971,8 +971,8 @@ applyAugmentation = function(aug, faction) {
Player.defense_mult *= 2.5;
break;
case AugmentationNames.WiredReflexes: //Low level
Player.agility_mult *= 1.05;
Player.dexterity_mult *= 1.05;
Player.agility_mult *= 1.1;
Player.dexterity_mult *= 1.1;
break;
case AugmentationNames.GrapheneBoneLacings: //High level
Player.strength_mult *= 2;
@ -991,7 +991,7 @@ applyAugmentation = function(aug, faction) {
Player.dexterity_mult *= 2;
break;
case AugmentationNames.BionicLegs: //Med level
Player.agility_mult *= 1.5;
Player.agility_mult *= 1.75;
break;
case AugmentationNames.GrapheneBionicLegs: //High level
player.agility_mult *= 3.0;
@ -1012,54 +1012,54 @@ applyAugmentation = function(aug, faction) {
//Hacking augmentations
case AugmentationNames.BitWire:
Player.hacking_mult *= 1.05;
Player.hacking_mult *= 1.1;
break;
case AugmentationNames.ArtificialBioNeuralNetwork: //Med level
Player.hacking_speed_mult *= .98;
Player.hacking_speed_mult *= .97;
Player.hacking_money_mult *= 1.1;
Player.hacking_mult *= 1.1;
Player.hacking_mult *= 1.15;
break;
case AugmentationNames.ArtificialSynapticPotentiation: //Med level
Player.hacking_speed_mult *= .98;
Player.hacking_chance_mult *= 1.02;
Player.hacking_speed_mult *= .97;
Player.hacking_chance_mult *= 1.03;
break;
case AugmentationNames.EnhancedMyelinSheathing: //Med level
Player.hacking_speed_mult *= .99;
Player.hacking_exp_mult *= 1.05;
Player.hacking_speed_mult *= .98;
Player.hacking_exp_mult *= 1.1;
Player.hacking_mult *= 1.05;
break;
case AugmentationNames.SynapticEnhancement: //Low Level
Player.hacking_speed_mult *= .99;
Player.hacking_speed_mult *= .97;
break;
case AugmentationNames.NeuralRetentionEnhancement: //Med level
Player.hacking_exp_mult *= 1.4;
break;
case AugmentationNames.DataJack: //Med low level
Player.hacking_money_mult *= 1.2;
Player.hacking_money_mult *= 1.25;
break;
case AugmentationNames.ENM: //Medium level
Player.hacking_mult *= 1.01;
Player.hacking_mult *= 1.1;
break;
case AugmentationNames.ENMCore: //Medium level
Player.hacking_speed_mult *= .98;
Player.hacking_speed_mult *= .97;
Player.hacking_money_mult *= 1.1;
Player.hacking_chance_mult *= 1.02;
Player.hacking_chance_mult *= 1.03;
Player.hacking_exp_mult *= 1.1;
Player.hacking_mult *= 1.01;
Player.hacking_mult *= 1.1;
break;
case AugmentationNames.ENMCoreV2: //Medium high level
Player.hacking_speed_mult *= .95;
Player.hacking_money_mult *= 1.5;
Player.hacking_chance_mult *= 1.05;
Player.hacking_exp_mult *= 1.5;
Player.hacking_mult *= 1.05;
Player.hacking_mult *= 1.15;
break;
case AugmentationNames.ENMCoreV3: //High level
Player.hacking_speed_mult *= .95;
Player.hacking_money_mult *= 1.5;
Player.hacking_chance_mult *= 1.1;
Player.hacking_exp_mult *= 2.0;
Player.hacking_mult *= 1.1;
Player.hacking_mult *= 1.2;
break;
case AugmentationNames.ENMAnalyzeEngine: //High level
Player.hacking_speed_mult *= 0.9;
@ -1069,18 +1069,18 @@ applyAugmentation = function(aug, faction) {
Player.hacking_chance_mult *= 1.2;
break;
case AugmentationNames.Neuralstimulator: //Medium Level
Player.hacking_speed_mult *= .99;
Player.hacking_speed_mult *= .98;
Player.hacking_chance_mult *= 1.1;
Player.hacking_exp_mult *= 1.2;
Player.hacking_exp_mult *= 1.25;
break;
//Work augmentations
case AugmentationNames.NuoptimalInjectorImplant: //Low medium level
Player.company_rep_mult *= 1.15;
Player.company_rep_mult *= 1.2;
break;
case AugmentationNames.SpeechEnhancement: //Low level
Player.company_rep_mult *= 1.05;
Player.charisma_mult *= 1.05;
Player.company_rep_mult *= 1.1;
Player.charisma_mult *= 1.1;
break;
case AugmentationNames.FocusWire: //Med level
Player.hacking_exp_mult *= 1.1;
@ -1089,22 +1089,22 @@ applyAugmentation = function(aug, faction) {
Player.dexterity_exp_mult *= 1.1;
Player.agility_exp_mult *= 1.1;
Player.charisma_exp_mult *= 1.1;
Player.company_rep_mult *= 1.05;
Player.work_money_mult *= 1.05;
Player.company_rep_mult *= 1.1;
Player.work_money_mult *= 1.1;
break;
case AugmentationNames.PCDNI: //Med level
Player.company_rep_mult *= 1.1;
Player.company_rep_mult *= 1.25;
Player.hacking_mult *= 1.1;
break;
case AugmentationNames.PCDNIOptimizer: //High level
//Allows u to better optimize code/pc when connecting with PC DNI..helps with software/IT jobs
Player.company_rep_mult *= 1.2;
Player.hacking_mult *= 1.2;
Player.company_rep_mult *= 1.25;
Player.hacking_mult *= 1.25;
break;
case AugmentationNames.PCDNINeuralNetwork: //High level
Player.company_rep_mult *= 1.1;
Player.company_rep_mult *= 1.5;
Player.hacking_mult *= 1.1;
Player.hacking_speed_mult *= .98;
Player.hacking_speed_mult *= .95;
break;
case AugmentationNames.ADRPheromone1:
Player.company_rep_mult *= 1.1;
@ -1113,16 +1113,16 @@ applyAugmentation = function(aug, faction) {
//Hacknet Node Augmentations
case AugmentationNames.HacknetNodeCPUUpload:
Player.hacknet_node_money_mult *= 1.15;
Player.hacknet_node_purchase_cost_mult *= 0.90;
Player.hacknet_node_money_mult *= 1.2;
Player.hacknet_node_purchase_cost_mult *= 0.85;
break;
case AugmentationNames.HacknetNodeCacheUpload:
Player.hacknet_node_money_mult *= 1.10;
Player.hacknet_node_level_cost_mult *= 0.90;
Player.hacknet_node_money_mult *= 1.15;
Player.hacknet_node_level_cost_mult *= 0.85;
break;
case AugmentationNames.HacknetNodeNICUpload:
Player.hacknet_node_money_mult *= 1.05;
Player.hacknet_node_purchase_cost_mult *= 0.95;
Player.hacknet_node_money_mult *= 1.1;
Player.hacknet_node_purchase_cost_mult *= 0.9;
break;
case AugmentationNames.HacknetNodeKernelDNI:
Player.hacknet_node_money_mult *= 1.50;
@ -1133,29 +1133,21 @@ applyAugmentation = function(aug, faction) {
//Misc augmentations
case AugmentationNames.NeuroFluxGovernor:
Player.hacking_mult *= 1.005;
Player.strength_mult *= 1.005;
Player.defense_mult *= 1.005;
Player.dexterity_mult *= 1.005;
Player.agility_mult *= 1.005;
Player.charisma_mult *= 1.005;
Player.hacking_exp_mult *= 1.005;
Player.strength_exp_mult *= 1.005;
Player.defense_exp_mult *= 1.005;
Player.dexterity_exp_mult *= 1.005;
Player.agility_exp_mult *= 1.005;
Player.charisma_exp_mult *= 1.005;
Player.hacking_mult *= 1.01;
Player.strength_mult *= 1.01;
Player.defense_mult *= 1.01;
Player.dexterity_mult *= 1.01;
Player.agility_mult *= 1.01;
Player.charisma_mult *= 1.01;
Player.hacking_exp_mult *= 1.01;
Player.strength_exp_mult *= 1.01;
Player.defense_exp_mult *= 1.01;
Player.dexterity_exp_mult *= 1.01;
Player.agility_exp_mult *= 1.01;
Player.charisma_exp_mult *= 1.01;
++aug.level;
break;
case AugmentationNames.Neurotrainer1: //Low Level
Player.hacking_exp_mult *= 1.05;
Player.strength_exp_mult *= 1.05;
Player.defense_exp_mult *= 1.05;
Player.dexterity_exp_mult *= 1.05;
Player.agility_exp_mult *= 1.05;
Player.charisma_exp_mult *= 1.05;
break;
case AugmentationNames.Neurotrainer2: //Medium level
Player.hacking_exp_mult *= 1.1;
Player.strength_exp_mult *= 1.1;
Player.defense_exp_mult *= 1.1;
@ -1163,7 +1155,7 @@ applyAugmentation = function(aug, faction) {
Player.agility_exp_mult *= 1.1;
Player.charisma_exp_mult *= 1.1;
break;
case AugmentationNames.Neurotrainer3: //High Level
case AugmentationNames.Neurotrainer2: //Medium level
Player.hacking_exp_mult *= 1.2;
Player.strength_exp_mult *= 1.2;
Player.defense_exp_mult *= 1.2;
@ -1171,38 +1163,46 @@ applyAugmentation = function(aug, faction) {
Player.agility_exp_mult *= 1.2;
Player.charisma_exp_mult *= 1.2;
break;
case AugmentationNames.Neurotrainer3: //High Level
Player.hacking_exp_mult *= 1.3;
Player.strength_exp_mult *= 1.3;
Player.defense_exp_mult *= 1.3;
Player.dexterity_exp_mult *= 1.3;
Player.agility_exp_mult *= 1.3;
Player.charisma_exp_mult *= 1.3;
break;
case AugmentationNames.Hypersight: //Medium high level
Player.dexterity_mult *= 1.5;
Player.hacking_speed_mult *= .99;
Player.hacking_speed_mult *= .97;
Player.hacking_money_mult *= 1.1;
break;
case AugmentationNames.LuminCloaking1:
Player.agility_mult *= 1.05;
Player.crime_money_mult *= 1.05;
Player.crime_money_mult *= 1.1;
break;
case AugmentationNames.LuminCloaking2:
Player.agility_mult *= 1.05;
Player.defense_mult *= 1.05;
Player.crime_money_mult *= 1.15;
Player.agility_mult *= 1.1;
Player.defense_mult *= 1.1;
Player.crime_money_mult *= 1.25;
break;
case AugmentationNames.HemoRecirculator:
Player.strength_mult *= 1.1;
Player.defense_mult *= 1.1;
Player.agility_mult *= 1.1;
Player.dexterity_mult *= 1.1;
Player.strength_mult *= 1.15;
Player.defense_mult *= 1.15;
Player.agility_mult *= 1.15;
Player.dexterity_mult *= 1.15;
break;
case AugmentationNames.SmartSonar:
Player.dexterity_mult *= 1.1;
Player.dexterity_exp_mult *= 1.1;
Player.crime_money_mult *= 1.2;
Player.dexterity_exp_mult *= 1.15;
Player.crime_money_mult *= 1.25;
break;
case AugmentationNames.PowerRecirculator:
Player.hacking_mult *= 1.05;
Player.strength_mult *= 1.05;
Player.defense_mult *= 1.05;
Player.dexterity_mult *= 1.05;
Player.agility_mult *= 1.05;
Player.charisma_mult *= 1.05;
Player.hacking_mult *= 1.1;
Player.strength_mult *= 1.1;
Player.defense_mult *= 1.1;
Player.dexterity_mult *= 1.1;
Player.agility_mult *= 1.1;
Player.charisma_mult *= 1.1;
Player.hacking_exp_mult *= 1.1;
Player.strength_exp_mult *= 1.1;
Player.defense_exp_mult *= 1.1;

@ -1,4 +1,36 @@
/* HacknetNode.js */
function hacknetNodesInit() {
var mult1x = document.getElementById("hacknet-nodes-1x-multiplier");
mult1x.addEventListener("click", function() {
hacknetNodePurchaseMultiplier = 1;
updateHacknetNodesMultiplierButtons();
updateHacknetNodesContent();
return false;
});
var mult5x = document.getElementById("hacknet-nodes-5x-multiplier");
mult5x.addEventListener("click", function() {
hacknetNodePurchaseMultiplier = 5;
updateHacknetNodesMultiplierButtons();
updateHacknetNodesContent();
return false;
});
var mult10x = document.getElementById("hacknet-nodes-10x-multiplier");
mult10x.addEventListener("click", function() {
hacknetNodePurchaseMultiplier = 10;
updateHacknetNodesMultiplierButtons();
updateHacknetNodesContent();
return false;
});
var multMax = document.getElementById("hacknet-nodes-max-multiplier");
multMax.addEventListener("click", function() {
hacknetNodePurchaseMultiplier = 0;
updateHacknetNodesMultiplierButtons();
updateHacknetNodesContent();
return false;
});
}
document.addEventListener("DOMContentLoaded", hacknetNodesInit, false);
function HacknetNode(name) {
this.level = 1;
this.ram = 1; //GB
@ -17,7 +49,7 @@ HacknetNode.prototype.updateMoneyGainRate = function() {
var gainPerLevel = CONSTANTS.HacknetNodeMoneyGainPerLevel;
this.moneyGainRatePerSecond = (this.level * gainPerLevel) *
Math.pow(1.06, this.ram-1) *
Math.pow(1.05, this.ram-1) *
((this.numCores + 1) / 2) * Player.hacknet_node_money_mult;
if (isNaN(this.moneyGainRatePerSecond)) {
this.moneyGainRatePerSecond = 0;
@ -148,8 +180,53 @@ getCostOfNextHacknetNode = function() {
return CONSTANTS.BaseCostForHacknetNode * Math.pow(mult, numOwned) * Player.hacknet_node_purchase_cost_mult;
}
selectHacknetNodePurchaseMultiplier = function() {
var hacknetNodePurchaseMultiplier = 1;
updateHacknetNodesMultiplierButtons = function() {
var mult1x = document.getElementById("hacknet-nodes-1x-multiplier");
var mult5x = document.getElementById("hacknet-nodes-5x-multiplier");
var mult10x = document.getElementById("hacknet-nodes-10x-multiplier");
var multMax = document.getElementById("hacknet-nodes-max-multiplier");
mult1x.setAttribute("class", "a-link-button");
mult5x.setAttribute("class", "a-link-button");
mult10x.setAttribute("class", "a-link-button");
multMax.setAttribute("class", "a-link-button");
if (Player.hacknetNodes.length == 0) {
mult1x.setAttribute("class", "a-link-button-inactive");
mult5x.setAttribute("class", "a-link-button-inactive");
mult10x.setAttribute("class", "a-link-button-inactive");
multMax.setAttribute("class", "a-link-button-inactive");
} else if (hacknetNodePurchaseMultiplier == 1) {
mult1x.setAttribute("class", "a-link-button-inactive");
} else if (hacknetNodePurchaseMultiplier == 5) {
mult5x.setAttribute("class", "a-link-button-inactive");
} else if (hacknetNodePurchaseMultiplier == 10) {
mult10x.setAttribute("class", "a-link-button-inactive");
} else {
multMax.setAttribute("class", "a-link-button-inactive");
}
}
//Calculate the maximum number of times the Player can afford to upgrade
//a Hacknet Node's level"
getMaxNumberLevelUpgrades = function(nodeObj) {
if (nodeObj.calculateLevelUpgradeCost(1) > Player.money) {return 0;}
var min = 1;
var max = 199;
while (min <= max) {
var curr = (min + max) / 2 | 0;
if (curr != 200 &&
nodeObj.calculateLevelUpgradeCost(curr) < Player.money &&
nodeObj.calculateLevelUpgradeCost(curr+1) > Player.money) {
return curr;
} else if (nodeObj.calculateLevelUpgradeCost(curr) > Player.money) {
max = curr - 1;
} else if (nodeObj.calculateLevelUpgradeCost(curr) < Player.money) {
min = curr + 1;
} else {
return curr;
}
}
}
//Creates Hacknet Node DOM elements when the page is opened
@ -163,11 +240,7 @@ displayHacknetNodesContent = function() {
});
//Handle Purchase multiplier buttons
var mult1x = clearEventListeners("hacknet-nodes-1x-multiplier");
var mult5x = clearEventListenrs("hacknet-nodes-1x-multiplier");
if (Player.hacknetNodes.length == 0) {
}
updateHacknetNodesMultiplierButtons();
//Remove all old hacknet Node DOM elements
var hacknetNodesList = document.getElementById("hacknet-nodes-list");
@ -232,7 +305,11 @@ createHacknetNodeDomElement = function(nodeObj) {
upgradeLevelButton.id = "hacknet-node-upgrade-level-" + nodeName;
upgradeLevelButton.setAttribute("class", "a-link-button-inactive");
upgradeLevelButton.addEventListener("click", function() {
nodeObj.purchaseLevelUpgrade();
var numUpgrades = hacknetNodePurchaseMultiplier;
if (hacknetNodePurchaseMultiplier == 0) {
numUpgrades = getMaxNumberLevelUpgrades(nodeObj);
}
nodeObj.purchaseLevelUpgrade(numUpgrades);
updateHacknetNodesContent();
return false;
});
@ -286,8 +363,17 @@ updateHacknetNodeDomElement = function(nodeObj) {
upgradeLevelButton.innerHTML = "MAX LEVEL";
upgradeLevelButton.setAttribute("class", "a-link-button-inactive");
} else {
var upgradeLevelCost = nodeObj.calculateLevelUpgradeCost();
upgradeLevelButton.innerHTML = "Upgrade Hacknet Node Level - $" + formatNumber(upgradeLevelCost, 2);
var multiplier = 0;
if (hacknetNodePurchaseMultiplier == 0) {
//Max
multiplier = getMaxNumberLevelUpgrades(nodeObj);
} else {
multiplier = hacknetNodePurchaseMultiplier;
}
var upgradeLevelCost = nodeObj.calculateLevelUpgradeCost(multiplier);
upgradeLevelButton.innerHTML = "Upgrade Hacknet Node Level x" + multiplier +
" - $" + formatNumber(upgradeLevelCost, 2);
if (upgradeLevelCost > Player.money ) {
upgradeLevelButton.setAttribute("class", "a-link-button-inactive");
} else {

@ -44,7 +44,7 @@ function convertTimeMsToTimeElapsedString(time) {
var seconds = time;
var res = "";
if (days) {res += days + " days";}
if (days) {res += days + " days ";}
if (hours) {res += hours + " hours ";}
if (minutes) {res += minutes + " minutes ";}
if (seconds) {res += seconds + " seconds ";}