diff --git a/css/menupages.css b/css/menupages.css index 6914844b0..462151771 100644 --- a/css/menupages.css +++ b/css/menupages.css @@ -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), diff --git a/css/styles.css b/css/styles.css index 55017956a..9b4f09d1f 100644 --- a/css/styles.css +++ b/css/styles.css @@ -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; diff --git a/index.html b/index.html index abcb57a0a..a16559387 100644 --- a/index.html +++ b/index.html @@ -185,7 +185,6 @@ x1 x5 x10 - x100 MAX diff --git a/src/Augmentations.js b/src/Augmentations.js index 3ca5c1d03..eba0d74ba 100644 --- a/src/Augmentations.js +++ b/src/Augmentations.js @@ -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.

This augmentation increases all of the player's combat stats by 10%.") + "blood.

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.

" + - "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.

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.

" + - "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

. This upgrade increases the player's strength and defense by an additional 20%.") + "drugs into the bloodstream

. 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

. This upgrade increases the player's strength and defense by an additional 30%."); + "drugs into the bloodstream

. 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.

" + - "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.

" + - "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.

" + - "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.

This augmentation increases the player's hacking skill by 5%"); + "capabilities.

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.

" + "This augmentation:
" + - "Increases the player's hacking speed by 2%
" + + "Increases the player's hacking speed by 3%
" + "Increases the amount of money the player's gains from hacking by 10%
" + - "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.

" + - "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.

" + "This augmentation:
" + - "Increases the player's hacking speed by 1%
" + + "Increases the player's hacking speed by 2%
" + "Increases the player's hacking skill by 5%
" + - "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.

" + - "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.

" + - "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.

" + - "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.

" + "This augmentation:
" + - "Increases the player's hacking speed by 2%
" + + "Increases the player's hacking speed by 3%
" + "Increases the amount of money the player gains from hacking by 10%
" + - "Increases the player's chance of successfully performing a hack by 2%
" + + "Increases the player's chance of successfully performing a hack by 3%
" + "Increases the player's hacking experience gain rate by 10%
" + - "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%
" + "Increases the player's chance of successfully performing a hack by 5%
" + "Increases the player's hacking experience gain rate by 50%
" + - "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%
" + "Increases the player's chance of successfully performing a hack by 10%
" + "Increases the player's hacking experience gain rate by 100%
" + - "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

" + "This augmentation:
" + - "Increases the player's hacking speed by 1%
" + + "Increases the player's hacking speed by 2%
" + "Increases the player's chance of successfully performing a hack by 10%
" + - "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.

" + "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.

" + "This augmentation:
" + - "Increases the player's charisma by 5%
" + - "Increases the amount of reputation the player gains when working for a company by 5%"); + "Increases the player's charisma by 10%
" + + "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.

" + "This augmentation:
" + "Increases all experience gains by 10%
" + - "Increases the amount of money the player gains from working by 5%
" + - "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%
" + + "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.

" + "This augmentation:
" + - "Increases the amount of reputation the player gains when working for a company by 10%
" + + "Increases the amount of reputation the player gains when working for a company by 25%
" + "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.

" + "This augmentation:
" + - "Increases the amount of reputation the player gains when working for a company by 20%
" + - "Increases the player's hacking skill by 20%"); + "Increases the amount of reputation the player gains when working for a company by 25%
" + + "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.

" + "This augmentation:
" + - "Increases the amount of reputation the player gains when working for a company by 10%
" + + "Increases the amount of reputation the player gains when working for a company by 50%
" + "Increases the player's hacking skill by 10%
" + - "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.

" + @@ -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.

" + "This augmentation:
" + - "Increases the amount of money produced by Hacknet Nodes by 15%
" + - "Decreases the cost of purchasing a Hacknet Node Core by 10%"); + "Increases the amount of money produced by Hacknet Nodes by 20%
" + + "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.

" + "This augmentation:
" + - "Increases the amount of money produced by Hacknet Nodes by 10%
" + - "Decreases the cost of leveling up a Hacknet Node by 10%"); + "Increases the amount of money produced by Hacknet Nodes by 15%
" + + "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.

" + "This augmentation:
" + - "Increases the amount of money produced by Hacknet Nodes by 5%
" + - "Decreases the cost of purchasing a Hacknet Node by 5%"); + "Increases the amount of money produced by Hacknet Nodes by 10%
" + + "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.

" + "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.

" + - "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.

" + - "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.

" + - "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.

" + "This augmentation:
" + "Increases the player's dexterity by 50%
" + - "Increases the player's hacking speed by 1%
" + + "Increases the player's hacking speed by 3%
" + "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.

" + "This augmentation:
" + "Increases the player's agility by 5%
" + - "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.

" + "This augmentation:
" + - "Increases the player's agility by 5%
" + - "Increases the player's defense by 5%
" + - "Increases the amount of money the player gains from crimes by 15%"); + "Increases the player's agility by 10%
" + + "Increases the player's defense by 10%
" + + "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.

" + "This augmentation:
" + "Increases the player's dexterity by 10%
" + - "Increases the player's dexterity experience gain rate by 10%
" + - "Increases the amount of money the player gains from crimes by 20%"); + "Increases the player's dexterity experience gain rate by 15%
" + + "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.

" + "This augmentation:
" + - "Increases all of the player's stats by 5%
" + + "Increases all of the player's stats by 10%
" + "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; diff --git a/src/HacknetNode.js b/src/HacknetNode.js index 35769d680..ddc3f15f4 100644 --- a/src/HacknetNode.js +++ b/src/HacknetNode.js @@ -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 { diff --git a/utils/StringHelperFunctions.js b/utils/StringHelperFunctions.js index 873557bb0..eb1487c7d 100644 --- a/utils/StringHelperFunctions.js +++ b/utils/StringHelperFunctions.js @@ -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 ";}