From 88f1e1bae200c9f6a5bc161c848e419b3f454d8f Mon Sep 17 00:00:00 2001 From: Daniel Xie Date: Mon, 22 May 2017 10:39:51 -0500 Subject: [PATCH 1/2] Rebalancing. Added slightly more money to the starting servers and gyms. Made many of the augmentations slightly cheaper --- README.md | 7 ++++++- src/Augmentations.js | 48 ++++++++++++++++++++++---------------------- src/Constants.js | 2 +- src/Server.js | 28 +++++++++++++------------- 4 files changed, 45 insertions(+), 40 deletions(-) diff --git a/README.md b/README.md index f7ad97b72..94e43ecf1 100644 --- a/README.md +++ b/README.md @@ -36,4 +36,9 @@ Private beta feedback I'd suggest putting a "Back" button in the tutorial window, -test for open beta \ No newline at end of file +test for open beta + +but for people who have no clue about coding etc. how about, later in the game, let them buy full scripts? +should make it more easy for the average user + +but the 50% penalty for not working 8 hours is a bit harsh \ No newline at end of file diff --git a/src/Augmentations.js b/src/Augmentations.js index 678e3aa06..6e00d6cda 100644 --- a/src/Augmentations.js +++ b/src/Augmentations.js @@ -151,7 +151,7 @@ initAugmentations = function() { 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 15%.") - HemoRecirculator.setRequirements(6000, 10000000); + HemoRecirculator.setRequirements(4000, 8000000); HemoRecirculator.addToFactions(["Tetrads", "The Dark Army", "The Syndicate"]); if (augmentationExists(AugmentationNames.HemoRecirculator)) { HemoRecirculator.owned = Augmentations[AugmentationNames.HemoRecirculator].owned; @@ -160,7 +160,7 @@ initAugmentations = function() { AddToAugmentations(HemoRecirculator); var Targeting1 = new Augmentation(AugmentationNames.Targeting1); - Targeting1.setRequirements(2500, 3000000); + Targeting1.setRequirements(2000, 2500000); 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.

" + @@ -174,7 +174,7 @@ initAugmentations = function() { AddToAugmentations(Targeting1); var Targeting2 = new Augmentation(AugmentationNames.Targeting2); - Targeting2.setRequirements(4000, 9000000); + Targeting2.setRequirements(3500, 7500000); 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 30%."); @@ -187,7 +187,7 @@ initAugmentations = function() { AddToAugmentations(Targeting2); var Targeting3 = new Augmentation(AugmentationNames.Targeting3); - Targeting3.setRequirements(12000, 20000000); + Targeting3.setRequirements(11000, 20000000); Targeting3.setInfo("This is an upgrade of the Augmented Targeting II 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 50%."); @@ -227,7 +227,7 @@ initAugmentations = function() { AddToAugmentations(SynfibrilMuscle) var CombatRib1 = new Augmentation(AugmentationNames.CombatRib1); - CombatRib1.setRequirements(3500, 5000000); + CombatRib1.setRequirements(2500, 4000000); 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 15%."); @@ -240,7 +240,7 @@ initAugmentations = function() { AddToAugmentations(CombatRib1); var CombatRib2 = new Augmentation(AugmentationNames.CombatRib2); - CombatRib2.setRequirements(8000, 12000000); + CombatRib2.setRequirements(7000, 10000000); 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 25%.") CombatRib2.addToFactions(["The Dark Army", "The Syndicate", "Sector-12", "Volhaven", "Ishima", @@ -264,7 +264,7 @@ initAugmentations = function() { AddToAugmentations(CombatRib3); var NanofiberWeave = new Augmentation(AugmentationNames.NanofiberWeave); - NanofiberWeave.setRequirements(15000, 15000000); + NanofiberWeave.setRequirements(14000, 15000000); NanofiberWeave.setInfo("Synthetic nanofibers are woven into the skin's extracellular matrix using electrospinning. " + "This improves the skin's ability to regenerate itself and protect the body from external stresses and forces.

" + "This augmentation increases the player's strength and defense by 40%."); @@ -277,7 +277,7 @@ initAugmentations = function() { AddToAugmentations(NanofiberWeave); var SubdermalArmor = new Augmentation(AugmentationNames.SubdermalArmor); - SubdermalArmor.setRequirements(600000, 750000000); + SubdermalArmor.setRequirements(350000, 550000000); SubdermalArmor.setInfo("The NEMEAN Subdermal Weave is a thin, light-weight, graphene plating that houses a dilatant fluid. " + "The material is implanted underneath the skin, and is the most advanced form of defensive enhancement " + "that has ever been created. The dilatant fluid, despite being thin and light, is extremely effective " + @@ -293,7 +293,7 @@ initAugmentations = function() { AddToAugmentations(SubdermalArmor); var WiredReflexes = new Augmentation(AugmentationNames.WiredReflexes); - WiredReflexes.setRequirements(600, 500000); + WiredReflexes.setRequirements(400, 400000); 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 10%."); @@ -318,7 +318,7 @@ initAugmentations = function() { AddToAugmentations(GrapheneBoneLacings); var BionicSpine = new Augmentation(AugmentationNames.BionicSpine); - BionicSpine.setRequirements(30000, 25000000); + BionicSpine.setRequirements(18000, 22000000); BionicSpine.setInfo("An artificial spine created from plasteel and carbon fibers that completely replaces the organic spine. " + "Not only is the Bionic Spine physically stronger than a human spine, but it is also capable of digitally " + "stimulating and regulating the neural signals that are sent and received by the spinal cord. This results in " + @@ -345,7 +345,7 @@ initAugmentations = function() { AddToAugmentations(GrapheneBionicSpine); var BionicLegs = new Augmentation(AugmentationNames.BionicLegs); - BionicLegs.setRequirements(80000, 60000000); + BionicLegs.setRequirements(60000, 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 75%."); BionicLegs.addToFactions(["Speakers for the Dead", "The Syndicate", "KuaiGong International", @@ -357,7 +357,7 @@ initAugmentations = function() { AddToAugmentations(BionicLegs); var GrapheneBionicLegs = new Augmentation(AugmentationNames.GrapheneBionicLegs); - GrapheneBionicLegs.setRequirements(400000, 800000000); + GrapheneBionicLegs.setRequirements(300000, 750000000); 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 200%."); @@ -370,7 +370,7 @@ initAugmentations = function() { //Labor stat augmentations var SpeechProcessor = new Augmentation(AugmentationNames.SpeechProcessor); //Cochlear imlant? - SpeechProcessor.setRequirements(3500, 25000000); + SpeechProcessor.setRequirements(3000, 7500000); SpeechProcessor.setInfo("A cochlear implant with an embedded computer that analyzes incoming speech. " + "The embedded computer processes characteristics of incoming speech, such as tone " + "and inflection, to pick up on subtle cues and aid in social interactions.

" + @@ -397,7 +397,7 @@ initAugmentations = function() { AddToAugmentations(TITN41Injection); var EnhancedSocialInteractionImplant = new Augmentation(AugmentationNames.EnhancedSocialInteractionImplant); - EnhancedSocialInteractionImplant.setRequirements(200000, 300000000); + EnhancedSocialInteractionImplant.setRequirements(150000, 200000000); EnhancedSocialInteractionImplant.setInfo("A cranial implant that greatly assists in the user's ability to analyze social situations " + "and interactions. The system uses a wide variety of factors such as facial expression, body " + "language, and the voice's tone/inflection to determine the best course of action during social" + @@ -414,7 +414,7 @@ initAugmentations = function() { //Hacking augmentations var BitWire = new Augmentation(AugmentationNames.BitWire); - BitWire.setRequirements(1750, 2000000); + BitWire.setRequirements(1500, 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 10%"); BitWire.addToFactions(["CyberSec", "BitRunners", "NiteSec"]); @@ -425,7 +425,7 @@ initAugmentations = function() { AddToAugmentations(BitWire); var ArtificialBioNeuralNetwork = new Augmentation(AugmentationNames.ArtificialBioNeuralNetwork); - ArtificialBioNeuralNetwork.setRequirements(120000, 600000000); + ArtificialBioNeuralNetwork.setRequirements(110000, 500000000); ArtificialBioNeuralNetwork.setInfo("A network consisting of millions of nanoprocessors is embedded into the brain. " + "The network is meant to mimick the way a biological brain solves a problem, which each " + "nanoprocessor acting similar to the way a neuron would in a neural network. However, these " + @@ -443,7 +443,7 @@ initAugmentations = function() { AddToAugmentations(ArtificialBioNeuralNetwork); var ArtificialSynapticPotentiation = new Augmentation(AugmentationNames.ArtificialSynapticPotentiation); - ArtificialSynapticPotentiation.setRequirements(2500, 15000000); + ArtificialSynapticPotentiation.setRequirements(2500, 14000000); 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:
" + @@ -458,7 +458,7 @@ initAugmentations = function() { AddToAugmentations(ArtificialSynapticPotentiation); var EnhancedMyelinSheathing = new Augmentation(AugmentationNames.EnhancedMyelinSheathing); - EnhancedMyelinSheathing.setRequirements(60000, 250000000); + EnhancedMyelinSheathing.setRequirements(40000, 225000000); EnhancedMyelinSheathing.setInfo("Electrical signals are used to induce a new, artificial form of myelinogensis in the human body. " + "This process results in the proliferation of new, synthetic myelin sheaths in the nervous " + "system. These myelin sheaths can propogate neuro-signals much faster than their organic " + @@ -475,7 +475,7 @@ initAugmentations = function() { AddToAugmentations(EnhancedMyelinSheathing); var SynapticEnhancement = new Augmentation(AugmentationNames.SynapticEnhancement); - SynapticEnhancement.setRequirements(900, 1200000); + SynapticEnhancement.setRequirements(800, 1100000); 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 3%."); @@ -487,7 +487,7 @@ initAugmentations = function() { AddToAugmentations(SynapticEnhancement); var NeuralRetentionEnhancement = new Augmentation(AugmentationNames.NeuralRetentionEnhancement); - NeuralRetentionEnhancement.setRequirements(10000, 50000000); + NeuralRetentionEnhancement.setRequirements(8000, 40000000); NeuralRetentionEnhancement.setInfo("Chemical injections are used to permanently alter and strengthen the brain's neuronal " + "circuits, strengthening its ability to retain information.

" + "This augmentation increases the player's hacking experience gain rate by 40%."); @@ -786,7 +786,7 @@ initAugmentations = function() { AddToAugmentations(HacknetNodeNICUpload); var HacknetNodeKernelDNI = new Augmentation(AugmentationNames.HacknetNodeKernelDNI); - HacknetNodeKernelDNI.setRequirements(4000, 12000000); + HacknetNodeKernelDNI.setRequirements(3000, 6000000); HacknetNodeKernelDNI.setInfo("Installs a Direct-Neural Interface jack into the arm that is capable of connecting to a " + "Hacknet Node. This lets the user access and manipulate the Node's kernel using the mind's " + "electrochemical signals.

" + @@ -799,7 +799,7 @@ initAugmentations = function() { AddToAugmentations(HacknetNodeKernelDNI); var HacknetNodeCoreDNI = new Augmentation(AugmentationNames.HacknetNodeCoreDNI); - HacknetNodeCoreDNI.setRequirements(6000, 20000000); + HacknetNodeCoreDNI.setRequirements(5000, 10000000); HacknetNodeCoreDNI.setInfo("Installs a Direct-Neural Interface jack into the arm that is capable of connecting " + "to a Hacknet Node. This lets the user access and manipulate the Node's processing logic using " + "the mind's electrochemical signals.

" + @@ -929,7 +929,7 @@ initAugmentations = function() { "Increases the player's dexterity by 10%
" + "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.setRequirements(9000, 10000000); SmartSonar.addToFactions(["Slum Snakes"]); if (augmentationExists(AugmentationNames.SmartSonar)) { SmartSonar.owned = Augmentations[AugmentationNames.SmartSonar].owned; @@ -944,7 +944,7 @@ initAugmentations = function() { "This augmentation:
" + "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.setRequirements(10000, 30000000); PowerRecirculator.addToFactions(["Tetrads", "The Dark Army", "The Syndicate", "NWO"]); if (augmentationExists(AugmentationNames.PowerRecirculator)) { PowerRecirculator.owned = Augmentations[AugmentationNames.PowerRecirculator].owned; diff --git a/src/Constants.js b/src/Constants.js index aabca59c0..6700af277 100644 --- a/src/Constants.js +++ b/src/Constants.js @@ -1,5 +1,5 @@ CONSTANTS = { - Version: "0.13", + Version: "0.14", //Max level for any skill, assuming no multipliers. Determined by max numerical value in javascript for experience //and the skill level formula in Player.js. Note that all this means it that when experience hits MAX_INT, then diff --git a/src/Server.js b/src/Server.js index 5f8dc8622..e38dfd0ac 100644 --- a/src/Server.js +++ b/src/Server.js @@ -403,19 +403,19 @@ initForeignServers = function() { //"Low level" targets var FoodNStuffServer = new Server(); FoodNStuffServer.init(createRandomIp(), "foodnstuff", "Food N Stuff Supermarket", true, false, false, false, 4); - FoodNStuffServer.setHackingParameters(1, 600000, 10, 5); + FoodNStuffServer.setHackingParameters(1, 750000, 10, 5); FoodNStuffServer.setPortProperties(0); AddToAllServers(FoodNStuffServer); var SigmaCosmeticsServer = new Server(); SigmaCosmeticsServer.init(createRandomIp(), "sigma-cosmetics", "Sigma Cosmetics", true, false, false, false, 4); - SigmaCosmeticsServer.setHackingParameters(5, 900000, 10, 10); + SigmaCosmeticsServer.setHackingParameters(5, 1000000, 10, 10); SigmaCosmeticsServer.setPortProperties(0); AddToAllServers(SigmaCosmeticsServer); var JoesGunsServer = new Server(); JoesGunsServer.init(createRandomIp(), "joesguns", "Joe's Guns", true, false, false, false, 4); - JoesGunsServer.setHackingParameters(10, 1200000, 20, 20); + JoesGunsServer.setHackingParameters(10, 1500000, 20, 20); JoesGunsServer.setPortProperties(0); AddToAllServers(JoesGunsServer); @@ -427,68 +427,68 @@ initForeignServers = function() { var NectarNightclubServer = new Server(); NectarNightclubServer.init(createRandomIp(), "nectar-net", "Nectar Nightclub Network", true, false, false, false, 4); - NectarNightclubServer.setHackingParameters(20, 1400000, 20, 25); + NectarNightclubServer.setHackingParameters(20, 1750000, 20, 25); NectarNightclubServer.setPortProperties(0); AddToAllServers(NectarNightclubServer); var NeoNightclubServer = new Server(); NeoNightclubServer.init(createRandomIp(), "neo-net", "Neo Nightclub Network", true, false, false, false, 2); - NeoNightclubServer.setHackingParameters(50, 3000000, 25, 25); + NeoNightclubServer.setHackingParameters(50, 3500000, 25, 25); NeoNightclubServer.setPortProperties(1); AddToAllServers(NeoNightclubServer); var SilverHelixServer = new Server(); SilverHelixServer.init(createRandomIp(), "silver-helix", "Silver Helix", true, false, false, false, 2); - SilverHelixServer.setHackingParameters(150, 50000000, 30, 30); + SilverHelixServer.setHackingParameters(150, 55000000, 30, 30); SilverHelixServer.setPortProperties(2); AddToAllServers(SilverHelixServer); var HongFangTeaHouseServer = new Server(); HongFangTeaHouseServer.init(createRandomIp(), "hong-fang-tea", "HongFang Teahouse", true, false, false, false, 4); - HongFangTeaHouseServer.setHackingParameters(30, 1750000, 15, 15); + HongFangTeaHouseServer.setHackingParameters(30, 2000000, 15, 15); HongFangTeaHouseServer.setPortProperties(0); AddToAllServers(HongFangTeaHouseServer); var HaraKiriSushiBarServer = new Server(); - HaraKiriSushiBarServer.setHackingParameters(40, 2500000, 15, 40); + HaraKiriSushiBarServer.setHackingParameters(40, 3000000, 15, 40); HaraKiriSushiBarServer.init(createRandomIp(), "harakiri-sushi", "HaraKiri Sushi Bar Network", true, false, false, false, 4); HaraKiriSushiBarServer.setPortProperties(0); AddToAllServers(HaraKiriSushiBarServer); var PhantasyServer = new Server(); PhantasyServer.init(createRandomIp(), "phantasy", "Phantasy Club", true, false, false, false, 0); - PhantasyServer.setHackingParameters(100, 25000000, 20, 35); + PhantasyServer.setHackingParameters(100, 27500000, 20, 35); PhantasyServer.setPortProperties(2); AddToAllServers(PhantasyServer); var MaxHardwareServer = new Server(); MaxHardwareServer.init(createRandomIp(), "max-hardware", "Max Hardware Store", true, false, false, false, 0); - MaxHardwareServer.setHackingParameters(80, 10000000, 15, 25); + MaxHardwareServer.setHackingParameters(80, 11000000, 15, 25); MaxHardwareServer.setPortProperties(1); AddToAllServers(MaxHardwareServer); var OmegaSoftwareServer = new Server(); OmegaSoftwareServer.init(createRandomIp(), "omega-net", "Omega Software", true, false, false, false, 8); - OmegaSoftwareServer.setHackingParameters(200, 80000000, 30, 35); + OmegaSoftwareServer.setHackingParameters(200, 85000000, 30, 35); OmegaSoftwareServer.setPortProperties(2); AddToAllServers(OmegaSoftwareServer); //Gyms var CrushFitnessGymServer = new Server(); CrushFitnessGymServer.init(createRandomIp(), "crush-fitness", "Crush Fitness", true, false, false, false, 0); - CrushFitnessGymServer.setHackingParameters(250, 10000000, 40, 25); + CrushFitnessGymServer.setHackingParameters(250, 30000000, 40, 25); CrushFitnessGymServer.setPortProperties(2); AddToAllServers(CrushFitnessGymServer); var IronGymServer = new Server(); IronGymServer.init(createRandomIp(), "iron-gym", "Iron Gym Network", true, false, false, false, 0); - IronGymServer.setHackingParameters(100, 5000000, 30, 15); + IronGymServer.setHackingParameters(100, 15000000, 30, 15); IronGymServer.setPortProperties(1); AddToAllServers(IronGymServer); var MilleniumFitnessGymServer = new Server(); MilleniumFitnessGymServer.init(createRandomIp(), "millenium-fitness", "Millenium Fitness Network", true, false, false, false, 0); - MilleniumFitnessGymServer.setHackingParameters(500, 2500000, 50, 30); + MilleniumFitnessGymServer.setHackingParameters(500, 50000000, 50, 30); MilleniumFitnessGymServer.setPortProperties(3); AddToAllServers(MilleniumFitnessGymServer); From 4ad770091f6f6a0d870579d69ff5b984428a13bb Mon Sep 17 00:00:00 2001 From: Daniel Xie Date: Mon, 22 May 2017 10:55:39 -0500 Subject: [PATCH 2/2] Buffed gyms and zer0 servers --- src/Server.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Server.js b/src/Server.js index e38dfd0ac..e7b523b02 100644 --- a/src/Server.js +++ b/src/Server.js @@ -421,7 +421,7 @@ initForeignServers = function() { var Zer0NightclubServer = new Server(); Zer0NightclubServer.init(createRandomIp(), "zer0", "ZER0 Nightclub", true, false, false, false, 2); - Zer0NightclubServer.setHackingParameters(75, 5500000, 25, 40); + Zer0NightclubServer.setHackingParameters(75, 7500000, 25, 40); Zer0NightclubServer.setPortProperties(1); AddToAllServers(Zer0NightclubServer); @@ -476,31 +476,31 @@ initForeignServers = function() { //Gyms var CrushFitnessGymServer = new Server(); CrushFitnessGymServer.init(createRandomIp(), "crush-fitness", "Crush Fitness", true, false, false, false, 0); - CrushFitnessGymServer.setHackingParameters(250, 30000000, 40, 25); + CrushFitnessGymServer.setHackingParameters(250, 40000000, 40, 30); CrushFitnessGymServer.setPortProperties(2); AddToAllServers(CrushFitnessGymServer); var IronGymServer = new Server(); IronGymServer.init(createRandomIp(), "iron-gym", "Iron Gym Network", true, false, false, false, 0); - IronGymServer.setHackingParameters(100, 15000000, 30, 15); + IronGymServer.setHackingParameters(100, 20000000, 30, 20); IronGymServer.setPortProperties(1); AddToAllServers(IronGymServer); var MilleniumFitnessGymServer = new Server(); MilleniumFitnessGymServer.init(createRandomIp(), "millenium-fitness", "Millenium Fitness Network", true, false, false, false, 0); - MilleniumFitnessGymServer.setHackingParameters(500, 50000000, 50, 30); + MilleniumFitnessGymServer.setHackingParameters(500, 100000000, 50, 35); MilleniumFitnessGymServer.setPortProperties(3); AddToAllServers(MilleniumFitnessGymServer); var PowerhouseGymServer = new Server(); PowerhouseGymServer.init(createRandomIp(), "powerhouse-fitness", "Powerhouse Fitness", true, false, false, false, 0); - PowerhouseGymServer.setHackingParameters(1000, 100000000, 60, 50); + PowerhouseGymServer.setHackingParameters(1000, 300000000, 60, 55); PowerhouseGymServer.setPortProperties(5); AddToAllServers(PowerhouseGymServer); var SnapFitnessGymServer = new Server(); SnapFitnessGymServer.init(createRandomIp(), "snap-fitness", "Snap Fitness", true, false, false, false, 0); - SnapFitnessGymServer.setHackingParameters(750, 75000000, 50, 45); + SnapFitnessGymServer.setHackingParameters(750, 150000000, 50, 50); SnapFitnessGymServer.setPortProperties(4); AddToAllServers(SnapFitnessGymServer);