mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2024-11-10 01:33:54 +01:00
Playtesting - Rebalancing, UI improvements, added tooltip for programs, home computer no longer reset on prestige
This commit is contained in:
parent
21f73088f6
commit
20d8a40e17
@ -201,6 +201,10 @@
|
||||
width: 99%;
|
||||
}
|
||||
|
||||
#create-program-page-text {
|
||||
width: 80%;
|
||||
}
|
||||
|
||||
.create-program-a-link-button {
|
||||
text-decoration: none;
|
||||
background-color: #555;
|
||||
@ -210,6 +214,7 @@
|
||||
border-right: 1px solid #333333;
|
||||
border-bottom: 1px solid #333333;
|
||||
border-left: 1px solid #333333;
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
.create-program-a-link-button-inactive {
|
||||
|
@ -141,3 +141,26 @@ tr:focus {
|
||||
border-radius: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
/* Tool tips (when hovering over an element */
|
||||
.tooltip {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.tooltip .tooltiptext {
|
||||
visibility: hidden;
|
||||
width: 200px;
|
||||
background-color: black;
|
||||
border: 2px solid white;
|
||||
color: white;
|
||||
text-align: center;
|
||||
padding: 4px;
|
||||
|
||||
position: absolute;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.tooltip:hover .tooltiptext {
|
||||
visibility: visible;
|
||||
}
|
39
index.html
39
index.html
@ -376,13 +376,40 @@
|
||||
|
||||
<!-- Create a program(executable) -->
|
||||
<div id="create-program-container">
|
||||
<p id="create-program-page-text">
|
||||
This page displays any programs that you are able to create. Writing the code for a program takes time, which
|
||||
can vary based on how complex the program is. Once you start working on a program you must see it all the way
|
||||
through. If you cancel before the program is complete you will lose all your progress and have to start all over
|
||||
if you want to code it again.
|
||||
</p>
|
||||
|
||||
<ul id="create-program-list">
|
||||
<a class="create-program-a-link-button" id="create-program-porthack" href="#">PortHack.exe</a>
|
||||
<a class="create-program-a-link-button" id="create-program-brutessh" href="#">BruteSSH.exe</a>
|
||||
<a class="create-program-a-link-button" id="create-program-ftpcrack" href="#">FTPCrack.exe</a>
|
||||
<a class="create-program-a-link-button" id="create-program-relaysmtp" href="#">relaySMTP.exe</a>
|
||||
<a class="create-program-a-link-button" id="create-program-httpworm" href="#">HTTPWorm.exe</a>
|
||||
<a class="create-program-a-link-button" id="create-program-sqlinject" href="#">SQLInject.exe</a>
|
||||
<a class="create-program-a-link-button tooltip" id="create-program-nuke" href="#">
|
||||
NUKE.exe
|
||||
<span class="tooltiptext"> This virus is used to gain root access to a machine if enough ports are opened. </span>
|
||||
</a>
|
||||
<a class="create-program-a-link-button tooltip" id="create-program-brutessh" href="#">
|
||||
BruteSSH.exe
|
||||
<span class="tooltiptext"> This program executes a brute force attack that opens SSH ports </span>
|
||||
</a>
|
||||
<a class="create-program-a-link-button tooltip" id="create-program-ftpcrack" href="#">
|
||||
FTPCrack.exe
|
||||
<span class="tooltiptext"> This program cracks open FTP ports</span>
|
||||
</a>
|
||||
<a class="create-program-a-link-button tooltip" id="create-program-relaysmtp" href="#">
|
||||
relaySMTP.exe
|
||||
<span class="tooltiptext"> This program opens SMTP ports by redirecting data </span>
|
||||
</a>
|
||||
|
||||
<a class="create-program-a-link-button tooltip" id="create-program-httpworm" href="#">
|
||||
HTTPWorm.exe
|
||||
<span class="tooltiptext"> This virus opens up HTTP ports </span>
|
||||
</a>
|
||||
|
||||
<a class="create-program-a-link-button tooltip" id="create-program-sqlinject" href="#">
|
||||
SQLInject.exe
|
||||
<span class="tooltiptext"> This virus opens SQL ports</span>
|
||||
</a>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
@ -436,7 +436,7 @@ initAugmentations = function() {
|
||||
var SynapticEnhancement = new Augmentation(AugmentationNames.SynapticEnhancement);
|
||||
SynapticEnhancement.setRequirements(1500, 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 the user's cognitive abilities.<br><br>" +
|
||||
"induce stronger synaptic activity. This improves the user's cognitive abilities.<br><br>" +
|
||||
"This augmentation increases the player's hacking speed by 1%.");
|
||||
SynapticEnhancement.addToFactions(["CyberSec"]);
|
||||
if (augmentationExists(AugmentationNames.SynapticEnhancement)) {
|
||||
@ -684,7 +684,7 @@ initAugmentations = function() {
|
||||
AddToAugmentations(PCDNINeuralNetwork);
|
||||
|
||||
var ADRPheromone1 = new Augmentation(AugmentationNames.ADRPheromone1);
|
||||
ADRPheromone1.setRequirements(2000, 2000000);
|
||||
ADRPheromone1.setRequirements(1500, 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>" +
|
||||
@ -700,7 +700,7 @@ initAugmentations = function() {
|
||||
|
||||
//HacknetNode Augmentations
|
||||
var HacknetNodeCPUUpload = new Augmentation(AugmentationNames.HacknetNodeCPUUpload);
|
||||
HacknetNodeCPUUpload.setRequirements(4000, 5000000);
|
||||
HacknetNodeCPUUpload.setRequirements(3000, 5000000);
|
||||
HacknetNodeCPUUpload.setInfo("Uploads the architecture and design details of a Hacknet Node's CPU into " +
|
||||
"the brain. This allows the user to engineer custom hardware and software " +
|
||||
"for the Hacknet Node that provides better performance.<br><br>" +
|
||||
@ -715,7 +715,7 @@ initAugmentations = function() {
|
||||
AddToAugmentations(HacknetNodeCPUUpload);
|
||||
|
||||
var HacknetNodeCacheUpload = new Augmentation(AugmentationNames.HacknetNodeCacheUpload);
|
||||
HacknetNodeCacheUpload.setRequirements(2000, 2500000);
|
||||
HacknetNodeCacheUpload.setRequirements(1500, 2500000);
|
||||
HacknetNodeCacheUpload.setInfo("Uploads the architecture and design details of a Hacknet Node's main-memory cache " +
|
||||
"into the brain. This allows the user to engineer custom cache hardware for the " +
|
||||
"Hacknet Node that offers better performance.<br><br>" +
|
||||
@ -730,7 +730,7 @@ initAugmentations = function() {
|
||||
AddToAugmentations(HacknetNodeCacheUpload);
|
||||
|
||||
var HacknetNodeNICUpload = new Augmentation(AugmentationNames.HacknetNodeNICUpload);
|
||||
HacknetNodeNICUpload.setRequirements(1000, 1000000);
|
||||
HacknetNodeNICUpload.setRequirements(750, 1000000);
|
||||
HacknetNodeNICUpload.setInfo("Uploads the architecture and design details of a Hacknet Node's Network Interface Card (NIC) " +
|
||||
"into the brain. This allows the user to engineer a custom NIC for the Hacknet Node that " +
|
||||
"offers better performance.<br><br>" +
|
||||
@ -745,7 +745,7 @@ initAugmentations = function() {
|
||||
AddToAugmentations(HacknetNodeNICUpload);
|
||||
|
||||
var HacknetNodeKernelDNI = new Augmentation(AugmentationNames.HacknetNodeKernelDNI);
|
||||
HacknetNodeKernelDNI.setRequirements(12000, 30000000);
|
||||
HacknetNodeKernelDNI.setRequirements(8000, 30000000);
|
||||
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.<br><br>" +
|
||||
@ -758,7 +758,7 @@ initAugmentations = function() {
|
||||
AddToAugmentations(HacknetNodeKernelDNI);
|
||||
|
||||
var HacknetNodeCoreDNI = new Augmentation(AugmentationNames.HacknetNodeCoreDNI);
|
||||
HacknetNodeCoreDNI.setRequirements(20000, 50000000);
|
||||
HacknetNodeCoreDNI.setRequirements(12000, 50000000);
|
||||
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.<br><br>" +
|
||||
@ -777,8 +777,10 @@ initAugmentations = function() {
|
||||
NeuroFluxGovernor.owned = oldAug.owned;
|
||||
NeuroFluxGovernor.level = oldAug.level;
|
||||
var mult = Math.pow(CONSTANTS.NeuroFluxGovernorLevelMult, NeuroFluxGovernor.level-1);
|
||||
NeuroFluxGovernor.setRequirements(1500 * mult, 1500000 * mult);
|
||||
NeuroFluxGovernor.setRequirements(1000 * mult, 1000000 * mult);
|
||||
delete Augmentations[AugmentationNames.NeuroFluxGovernor];
|
||||
} else {
|
||||
NeuroFluxGovernor.setRequirements(1000, 1000000);
|
||||
}
|
||||
NeuroFluxGovernor.setInfo("A device that is embedded in the back of the neck. The NeuroFlux Governor " +
|
||||
"monitors and regulates nervous impulses coming to and from the spinal column, " +
|
||||
@ -790,7 +792,7 @@ initAugmentations = function() {
|
||||
AddToAugmentations(NeuroFluxGovernor);
|
||||
|
||||
var Neurotrainer1 = new Augmentation(AugmentationNames.Neurotrainer1);
|
||||
Neurotrainer1.setRequirements(1000, 1000000);
|
||||
Neurotrainer1.setRequirements(1000, 750000);
|
||||
Neurotrainer1.setInfo("A decentralized cranial implant that improves the brain's ability to learn. It is " +
|
||||
"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 " +
|
||||
@ -804,7 +806,7 @@ initAugmentations = function() {
|
||||
AddToAugmentations(Neurotrainer1);
|
||||
|
||||
var Neurotrainer2 = new Augmentation(AugmentationNames.Neurotrainer2);
|
||||
Neurotrainer2.setRequirements(5000, 10000000);
|
||||
Neurotrainer2.setRequirements(4000, 10000000);
|
||||
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>" +
|
||||
|
@ -18,13 +18,13 @@ CONSTANTS = {
|
||||
/* Hacknet Node constants */
|
||||
HacknetNodeMoneyGainPerLevel: 0.75,
|
||||
HacknetNodePurchaseNextMult: 1.35, //Multiplier when purchasing an additional hacknet node
|
||||
HacknetNodeUpgradeLevelMult: 1.07, //Multiplier for cost when upgrading level
|
||||
HacknetNodeUpgradeRamMult: 1.2, //Multiplier for cost when upgrading RAM
|
||||
HacknetNodeUpgradeCoreMult: 1.5, //Multiplier for cost when buying another core
|
||||
HacknetNodeUpgradeLevelMult: 1.06, //Multiplier for cost when upgrading level
|
||||
HacknetNodeUpgradeRamMult: 1.15, //Multiplier for cost when upgrading RAM
|
||||
HacknetNodeUpgradeCoreMult: 1.45, //Multiplier for cost when buying another core
|
||||
|
||||
/* Augmentation */
|
||||
//NeuroFlux Governor cost multiplier as you level up
|
||||
NeuroFluxGovernorLevelMult: 1.1,
|
||||
NeuroFluxGovernorLevelMult: 1.08,
|
||||
|
||||
/* Script related things */
|
||||
//Time (ms) it takes to run one operation in Netscript.
|
||||
@ -83,6 +83,12 @@ CONSTANTS = {
|
||||
ClassManagement: "taking a Management course",
|
||||
ClassLeadership: "taking a Leadership course",
|
||||
|
||||
ClassDataStructuresBaseCost: 1,
|
||||
ClassNetworksBaseCost: 5,
|
||||
ClassAlgorithmsBaseCost: 20,
|
||||
ClassManagementBaseCost: 10,
|
||||
ClassLeadershipBaseCost: 20,
|
||||
|
||||
CrimeShoplift: "shoplift",
|
||||
CrimeMug: "mug someone",
|
||||
CrimeDrugs: "deal drugs",
|
||||
|
@ -11,14 +11,14 @@ Programs = {
|
||||
//TODO Right now the times needed to complete work are hard-coded...
|
||||
//maybe later make this dependent on hacking level or something
|
||||
function displayCreateProgramContent() {
|
||||
var portHackALink = document.getElementById("create-program-porthack");
|
||||
var nukeALink = document.getElementById("create-program-nuke");
|
||||
var bruteSshALink = document.getElementById("create-program-brutessh");
|
||||
var ftpCrackALink = document.getElementById("create-program-ftpcrack");
|
||||
var relaySmtpALink = document.getElementById("create-program-relaysmtp");
|
||||
var httpWormALink = document.getElementById("create-program-httpworm");
|
||||
var sqlInjectALink = document.getElementById("create-program-sqlinject");
|
||||
|
||||
portHackALink.style.display = "none";
|
||||
nukeALink.style.display = "none";
|
||||
bruteSshALink.style.display = "none";
|
||||
ftpCrackALink.style.display = "none";
|
||||
relaySmtpALink.style.display = "none";
|
||||
@ -27,7 +27,7 @@ function displayCreateProgramContent() {
|
||||
|
||||
//PortHack.exe (in case you delete it lol)
|
||||
if (Player.getHomeComputer().programs.indexOf(Programs.NukeProgram) == -1) {
|
||||
portHackALink.style.display = "block";
|
||||
nukeALink.style.display = "block";
|
||||
}
|
||||
|
||||
//BruteSSH
|
||||
|
@ -1,32 +1,32 @@
|
||||
/* Crimes.js */
|
||||
function commitShopliftCrime() {
|
||||
Player.crimeType = CONSTANTS.CrimeShoplift;
|
||||
Player.startCrime(0, 0.5, 0.5, 0.5, 0.5, 0, 500, 3000); //$166.66/s, .167 exp/s
|
||||
Player.startCrime(0, 0.5, 0.5, 0.5, 0.5, 0, 1000, 2000); //$500/s, .25 exp/s
|
||||
}
|
||||
|
||||
function commitMugCrime() {
|
||||
Player.crimeType = CONSTANTS.CrimeMug;
|
||||
Player.startCrime(0, 1, 1, 1, 1, 0, 1000, 5000); //$200/s, .2 exp/s
|
||||
Player.startCrime(0, 1, 1, 1, 1, 0, 3000, 4000); //$750/s, .2 exp/s
|
||||
}
|
||||
|
||||
function commitDealDrugsCrime() {
|
||||
Player.crimeType = CONSTANTS.CrimeDrugs;
|
||||
Player.startCrime(0, 2, 2, 2, 2, 2, 2500, 10000); //$250/s, .2 exp/s
|
||||
Player.startCrime(0, 2, 2, 2, 2, 2, 10000, 10000); //$1000/s, .2 exp/s
|
||||
}
|
||||
|
||||
function commitTraffickArmsCrime() {
|
||||
Player.crimeType = CONSTANTS.CrimeTraffickArms;
|
||||
Player.startCrime(0, 8, 8, 8, 8, 12, 15000, 40000); //$375/s, .2 combat exp/s, .3 cha exp/s
|
||||
Player.startCrime(0, 8, 8, 8, 8, 12, 60000, 40000); //$1500/s, .2 combat exp/s, .3 cha exp/s
|
||||
}
|
||||
|
||||
function commitHomicideCrime() {
|
||||
Player.crimeType = CONSTANTS.CrimeHomicide;
|
||||
Player.startCrime(0, 2, 2, 2, 2, 0, 600, 3000); //$200/s, 0.66 combat exp/s
|
||||
Player.startCrime(0, 2, 2, 2, 2, 0, 1000, 3000); //$333.3/s, 0.66 combat exp/s
|
||||
}
|
||||
|
||||
function commitKidnapCrime() {
|
||||
Player.crimeType = CONSTANTS.CrimeKidnap;
|
||||
Player.startCrime(0, 20, 20, 20, 20, 20, 50000, 120000); //$416.67/s. .167 exp/s
|
||||
Player.startCrime(0, 20, 20, 20, 20, 20, 200000, 120000); //$1666.666/s. .167 exp/s
|
||||
}
|
||||
|
||||
function determineCrimeSuccess(crime, moneyGained) {
|
||||
@ -95,7 +95,7 @@ function determineCrimeChanceTraffickArms() {
|
||||
Player.strength / CONSTANTS.MaxSkillLevel +
|
||||
Player.defense / CONSTANTS.MaxSkillLevel +
|
||||
Player.dexterity / CONSTANTS.MaxSkillLevel +
|
||||
Player.agility / CONSTANTS.MaxSkillLevel));
|
||||
Player.agility / CONSTANTS.MaxSkillLevel)) / 2;
|
||||
return Math.min(chance, 1);
|
||||
}
|
||||
|
||||
|
@ -1526,17 +1526,11 @@ displayUniversityLocationContent = function(costMult) {
|
||||
classLeadershipButton.style.display = "block";
|
||||
|
||||
//Costs (per second)
|
||||
var baseDataStructuresCost = 1;
|
||||
var baseNetworksCost = 5;
|
||||
var baseAlgorithmsCost = 20;
|
||||
var baseManagementCost = 10;
|
||||
var baseLeadershipCost = 20;
|
||||
|
||||
var dataStructuresCost = baseDataStructuresCost * costMult;
|
||||
var networksCost = baseNetworksCost * costMult;
|
||||
var algorithmsCost = baseAlgorithmsCost * costMult;
|
||||
var managementCost = baseManagementCost * costMult;
|
||||
var leadershipCost = baseLeadershipCost * costMult;
|
||||
var dataStructuresCost = CONSTANTS.ClassDataStructuresBaseCost * costMult;
|
||||
var networksCost = CONSTANTS.ClassNetworksBaseCost * costMult;
|
||||
var algorithmsCost = CONSTANTS.ClassAlgorithmsBaseCost * costMult;
|
||||
var managementCost = CONSTANTS.ClassManagementBaseCost * costMult;
|
||||
var leadershipCost = CONSTANTS.ClassLeadershipBaseCost * costMult;
|
||||
|
||||
//Update button text to show cost
|
||||
classDataStructuresButton.innerHTML = "Take Data Structures course ($" + dataStructuresCost + " / sec)";
|
||||
|
@ -792,19 +792,13 @@ PlayerObject.prototype.startClass = function(costMult, expMult, className) {
|
||||
this.className = className;
|
||||
|
||||
var gameCPS = 1000 / Engine._idleSpeed;
|
||||
//Base costs/exp (per second)
|
||||
var baseDataStructuresCost = 1;
|
||||
var baseNetworksCost = 5;
|
||||
var baseAlgorithmsCost = 20;
|
||||
var baseManagementCost = 10;
|
||||
var baseLeadershipCost = 20;
|
||||
|
||||
var baseStudyComputerScienceExp = 0.02;
|
||||
var baseDataStructuresExp = 0.1;
|
||||
var baseNetworksExp = 0.4;
|
||||
var baseAlgorithmsExp = 1.5;
|
||||
var baseManagementExp = 0.8;
|
||||
var baseLeadershipExp = 1.5;
|
||||
var baseStudyComputerScienceExp = 0.05;
|
||||
var baseDataStructuresExp = 0.2;
|
||||
var baseNetworksExp = 0.8;
|
||||
var baseAlgorithmsExp = 2.0;
|
||||
var baseManagementExp = 1.0;
|
||||
var baseLeadershipExp = 2.0;
|
||||
|
||||
//Find cost and exp gain per game cycle
|
||||
var cost = 0;
|
||||
@ -815,23 +809,23 @@ PlayerObject.prototype.startClass = function(costMult, expMult, className) {
|
||||
hackExp = baseStudyComputerScienceExp * expMult / gameCPS;
|
||||
break;
|
||||
case CONSTANTS.ClassDataStructures:
|
||||
cost = baseDataStructuresCost * costMult / gameCPS;
|
||||
cost = CONSTANTS.ClassDataStructuresBaseCost * costMult / gameCPS;
|
||||
hackExp = baseDataStructuresExp * expMult / gameCPS;
|
||||
break;
|
||||
case CONSTANTS.ClassNetworks:
|
||||
cost = baseNetworksCost * costMult / gameCPS;
|
||||
cost = CONSTANTS.ClassNetworksBaseCost * costMult / gameCPS;
|
||||
hackExp = baseNetworksExp * expMult / gameCPS;
|
||||
break;
|
||||
case CONSTANTS.ClassAlgorithms:
|
||||
cost = baseAlgorithmsCost * costMult / gameCPS;
|
||||
cost = CONSTANTS.ClassAlgorithmsBaseCost * costMult / gameCPS;
|
||||
hackExp = baseAlgorithmsExp * expMult / gameCPS;
|
||||
break;
|
||||
case CONSTANTS.ClassManagement:
|
||||
cost = baseManagementCost * costMult / gameCPS;
|
||||
cost = CONSTANTS.ClassManagementBaseCost * costMult / gameCPS;
|
||||
chaExp = baseManagementExp * expMult / gameCPS;
|
||||
break;
|
||||
case CONSTANTS.ClassLeadership:
|
||||
cost = baseLeadershipCost * costMult / gameCPS;
|
||||
cost = CONSTANTS.ClassLeadershipBaseCost * costMult / gameCPS;
|
||||
chaExp = baseLeadershipExp * expMult / gameCPS;
|
||||
break;
|
||||
default:
|
||||
@ -951,11 +945,16 @@ PlayerObject.prototype.startCrime = function(hackExp, strExp, defExp, dexExp, ag
|
||||
PlayerObject.prototype.commitCrime = function (numCycles) {
|
||||
this.timeWorked += Engine._idleSpeed * numCycles;
|
||||
|
||||
if (this.timeWorked >= this.timeNeededToCompleteWork) {Player.finishCrime(false);}
|
||||
if (this.timeWorked >= this.timeNeededToCompleteWork) {Player.finishCrime(false); return;}
|
||||
|
||||
var percent = Math.round(Player.timeWorked / Player.timeNeededToCompleteWork * 100);
|
||||
var numBars = Math.round(percent / 5);
|
||||
var progressBar = "[" + Array(numBars+1).join("|") + Array(20 - numBars + 1).join(" ") + "]";
|
||||
|
||||
var txt = document.getElementById("work-in-progress-text");
|
||||
txt.innerHTML = "You are attempting to " + Player.crimeType + ".<br>" +
|
||||
"Time remaining: " + convertTimeMsToTimeElapsedString(this.timeNeededToCompleteWork - this.timeWorked);
|
||||
"Time remaining: " + convertTimeMsToTimeElapsedString(this.timeNeededToCompleteWork - this.timeWorked) + "<br>" +
|
||||
progressBar.replace( / /g, " " );
|
||||
}
|
||||
|
||||
PlayerObject.prototype.finishCrime = function(cancelled) {
|
||||
|
@ -55,8 +55,6 @@ function prestigeAugmentation() {
|
||||
|
||||
Player.money = 1000;
|
||||
|
||||
Player.homeComputer = "";
|
||||
|
||||
Player.city = Locations.Sector12;
|
||||
Player.location = "";
|
||||
|
||||
@ -101,12 +99,23 @@ function prestigeAugmentation() {
|
||||
|
||||
Player.lastUpdate = new Date().getTime();
|
||||
|
||||
//Delete all servers
|
||||
var homeComp = null;
|
||||
//Delete all servers except home computer
|
||||
for (var member in AllServers) {
|
||||
//Don't delete home computer
|
||||
if (member == Player.homeComputer) {
|
||||
homeComp = AllServers[member];
|
||||
continue;
|
||||
}
|
||||
delete AllServers[member];
|
||||
}
|
||||
AllServers = {};
|
||||
|
||||
//Reset home computer (only the programs) and add to AllServers
|
||||
homeComp.programs.length = 0;
|
||||
homeComp.programs.push(Programs.NukeProgram);
|
||||
addToAllServers(homeComp);
|
||||
|
||||
//Delete all running scripts objects
|
||||
for (var i = 0; i < workerScripts.length; ++i) {
|
||||
workerScripts[i].env.stopFlag = true;
|
||||
@ -143,10 +152,8 @@ function prestigeAugmentation() {
|
||||
|
||||
//Inititialization
|
||||
SpecialServerIps = new SpecialServerIpsMap();
|
||||
Player.init();
|
||||
initForeignServers();
|
||||
initCompanies();
|
||||
//CompanyPositions.init(); Dont think this is needed
|
||||
|
||||
Engine.loadTerminalContent();
|
||||
}
|
@ -410,13 +410,13 @@ initForeignServers = function() {
|
||||
|
||||
var SigmaCosmeticsServer = new Server();
|
||||
SigmaCosmeticsServer.init(createRandomIp(), "sigma-cosmetics", "Sigma Cosmetics", true, false, false, false, 0);
|
||||
SigmaCosmeticsServer.setHackingParameters(5, 500000, 10, 10);
|
||||
SigmaCosmeticsServer.setHackingParameters(5, 750000, 10, 10);
|
||||
SigmaCosmeticsServer.setPortProperties(0);
|
||||
AddToAllServers(SigmaCosmeticsServer);
|
||||
|
||||
var JoesGunsServer = new Server();
|
||||
JoesGunsServer.init(createRandomIp(), "joesguns", "Joe's Guns", true, false, false, false, 2);
|
||||
JoesGunsServer.setHackingParameters(10, 200000, 20, 25);
|
||||
JoesGunsServer.setHackingParameters(10, 600000, 20, 20);
|
||||
JoesGunsServer.setPortProperties(0);
|
||||
AddToAllServers(JoesGunsServer);
|
||||
|
||||
@ -428,74 +428,74 @@ initForeignServers = function() {
|
||||
|
||||
var NectarNightclubServer = new Server();
|
||||
NectarNightclubServer.init(createRandomIp(), "nectar-net", "Nectar Nightclub Network", true, false, false, false, 2);
|
||||
NectarNightclubServer.setHackingParameters(20, 400000, 20, 25);
|
||||
NectarNightclubServer.setHackingParameters(20, 6500000, 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, 500000, 25, 25);
|
||||
NeoNightclubServer.setHackingParameters(50, 900000, 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, 1000000, 30, 30);
|
||||
SilverHelixServer.setHackingParameters(150, 5000000, 30, 30);
|
||||
SilverHelixServer.setPortProperties(2);
|
||||
AddToAllServers(SilverHelixServer);
|
||||
|
||||
var HongFangTeaHouseServer = new Server();
|
||||
HongFangTeaHouseServer.init(createRandomIp(), "hong-fang-tea", "HongFang Teahouse", true, false, false, false, 0);
|
||||
HongFangTeaHouseServer.setHackingParameters(30, 250000, 15, 10);
|
||||
HongFangTeaHouseServer.setHackingParameters(30, 800000, 15, 15);
|
||||
HongFangTeaHouseServer.setPortProperties(0);
|
||||
AddToAllServers(HongFangTeaHouseServer);
|
||||
|
||||
var HaraKiriSushiBarServer = new Server();
|
||||
HaraKiriSushiBarServer.setHackingParameters(40, 100000, 15, 40);
|
||||
HaraKiriSushiBarServer.setHackingParameters(40, 800000, 15, 40);
|
||||
HaraKiriSushiBarServer.init(createRandomIp(), "harakiri-sushi", "HaraKiri Sushi Bar Network", true, false, false, false, 0);
|
||||
HaraKiriSushiBarServer.setPortProperties(1);
|
||||
AddToAllServers(HaraKiriSushiBarServer);
|
||||
|
||||
var PhantasyServer = new Server();
|
||||
PhantasyServer.init(createRandomIp(), "phantasy", "Phantasy Club", true, false, false, false, 4);
|
||||
PhantasyServer.setHackingParameters(100, 300000, 20, 35);
|
||||
PhantasyServer.setHackingParameters(100, 1500000, 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, 150000, 15, 25);
|
||||
MaxHardwareServer.setHackingParameters(80, 800000, 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, 1000000, 30, 30);
|
||||
OmegaSoftwareServer.setHackingParameters(200, 10000000, 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, 300000, 40, 25);
|
||||
CrushFitnessGymServer.setHackingParameters(250, 5000000, 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, 150000, 30, 15);
|
||||
IronGymServer.setHackingParameters(100, 2500000, 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, 400000, 50, 30);
|
||||
MilleniumFitnessGymServer.setHackingParameters(500, 7500000, 50, 30);
|
||||
MilleniumFitnessGymServer.setPortProperties(3);
|
||||
AddToAllServers(MilleniumFitnessGymServer);
|
||||
|
||||
var PowerhouseGymServer = new Server();
|
||||
PowerhouseGymServer.init(createRandomIp(), "powerhouse-fitness", "Powerhouse Fitness", true, false, false, false, 0);
|
||||
PowerhouseGymServer.setHackingParameters(1000, 1000000, 60, 50);
|
||||
PowerhouseGymServer.setHackingParameters(1000, 20000000, 60, 50);
|
||||
PowerhouseGymServer.setPortProperties(5);
|
||||
AddToAllServers(PowerhouseGymServer);
|
||||
|
||||
|
@ -932,7 +932,7 @@ var Engine = {
|
||||
});
|
||||
|
||||
//Create Program buttons
|
||||
var portHackALink = document.getElementById("create-program-porthack");
|
||||
var portHackALink = document.getElementById("create-program-nuke");
|
||||
var bruteSshALink = document.getElementById("create-program-brutessh");
|
||||
var ftpCrackALink = document.getElementById("create-program-ftpcrack");
|
||||
var relaySmtpALink = document.getElementById("create-program-relaysmtp");
|
||||
|
@ -42,7 +42,7 @@ purchaseRamForHomeBoxCreate = function() {
|
||||
|
||||
purchaseRamForHomeBoxSetText("Would you like to purchase additional RAM for your home computer? <br><br>" +
|
||||
"This will upgrade your RAM from " + currentRam + "GB to " + newRam + "GB. <br><br>" +
|
||||
"This will cost $" + cost);
|
||||
"This will cost $" + formatNumber(cost, 2));
|
||||
|
||||
purchaseRamForHomeBoxOpen();
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user