mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2024-12-19 20:55:44 +01:00
Lots of changes, didn't keep track ofthem all
This commit is contained in:
parent
c35e08b4d5
commit
f2287b5696
@ -315,6 +315,7 @@ div.faction-clear {
|
|||||||
margin-left: 10%;
|
margin-left: 10%;
|
||||||
width: 99%;
|
width: 99%;
|
||||||
color: #66ff33;
|
color: #66ff33;
|
||||||
|
overflow-y: scroll;
|
||||||
}
|
}
|
||||||
|
|
||||||
#augmentations-list li {
|
#augmentations-list li {
|
||||||
|
26
index.html
26
index.html
@ -523,14 +523,18 @@
|
|||||||
|
|
||||||
<!-- Jobs/Work at a company -->
|
<!-- Jobs/Work at a company -->
|
||||||
<a href="#" id="location-software-job" class="a-link-button"> Apply for Software Job</a>
|
<a href="#" id="location-software-job" class="a-link-button"> Apply for Software Job</a>
|
||||||
|
<a href="#" id="location-software-consultant-job" class="a-link-button"> Apply for Software Consultant Job</a>
|
||||||
<a href="#" id="location-it-job" class="a-link-button"> Apply for IT Job </a>
|
<a href="#" id="location-it-job" class="a-link-button"> Apply for IT Job </a>
|
||||||
<a href="#" id="location-security-engineer-job" class="a-link-button"> Apply for Security Engineer Job</a>
|
<a href="#" id="location-security-engineer-job" class="a-link-button"> Apply for Security Engineer Job</a>
|
||||||
<a href="#" id="location-network-engineer-job" class="a-link-button"> Apply for Network Engineer Job</a>
|
<a href="#" id="location-network-engineer-job" class="a-link-button"> Apply for Network Engineer Job</a>
|
||||||
<a href="#" id="location-business-job" class="a-link-button"> Apply for Business Job</a>
|
<a href="#" id="location-business-job" class="a-link-button"> Apply for Business Job</a>
|
||||||
|
<a href="#" id="location-business-consultant-job" class="a-link-button"> Apply for Business Consultant Job </a>
|
||||||
<a href="#" id="location-security-job" class="a-link-button"> Apply for Security Job</a>
|
<a href="#" id="location-security-job" class="a-link-button"> Apply for Security Job</a>
|
||||||
<a href="#" id="location-agent-job" class="a-link-button"> Apply to be an Agent</a>
|
<a href="#" id="location-agent-job" class="a-link-button"> Apply to be an Agent</a>
|
||||||
<a href="#" id="location-employee-job" class="a-link-button"> Apply to be an Employee </a>
|
<a href="#" id="location-employee-job" class="a-link-button"> Apply to be an Employee </a>
|
||||||
|
<a href="#" id="location-parttime-employee-job" class="a-link-button"> Apply to be a Part-time Employee </a>
|
||||||
<a href="#" id="location-waiter-job" class="a-link-button"> Apply to be a Waiter</a>
|
<a href="#" id="location-waiter-job" class="a-link-button"> Apply to be a Waiter</a>
|
||||||
|
<a href="#" id="location-parttime-waiter-job" class="a-link-button"> Apply to be a Part-time Waiter</a>
|
||||||
|
|
||||||
<a href="#" id="location-work" class="a-link-button"> Work </a>
|
<a href="#" id="location-work" class="a-link-button"> Work </a>
|
||||||
|
|
||||||
@ -549,17 +553,17 @@
|
|||||||
<a href="#" id="location-leadership-class" class="a-link-button">Take Leadership course</a>
|
<a href="#" id="location-leadership-class" class="a-link-button">Take Leadership course</a>
|
||||||
|
|
||||||
<!-- Purchase servers -->
|
<!-- Purchase servers -->
|
||||||
<a href="#" id="location-purchase-1gb" class="a-link-button"> Purchase 1GB Server - $50,000</a>
|
<a href="#" id="location-purchase-1gb" class="a-link-button"> Purchase 1GB Server - $75,000</a>
|
||||||
<a href="#" id="location-purchase-2gb" class="a-link-button"> Purchase 2GB Server - $100,000</a>
|
<a href="#" id="location-purchase-2gb" class="a-link-button"> Purchase 2GB Server - $150,000</a>
|
||||||
<a href="#" id="location-purchase-4gb" class="a-link-button"> Purchase 4GB Server - $250,000</a>
|
<a href="#" id="location-purchase-4gb" class="a-link-button"> Purchase 4GB Server - $300,000</a>
|
||||||
<a href="#" id="location-purchase-8gb" class="a-link-button"> Purchase 8GB Server - $1,000,000</a>
|
<a href="#" id="location-purchase-8gb" class="a-link-button"> Purchase 8GB Server - $600,000</a>
|
||||||
<a href="#" id="location-purchase-16gb" class="a-link-button"> Purchase 16GB Server - $4,000,000</a>
|
<a href="#" id="location-purchase-16gb" class="a-link-button"> Purchase 16GB Server - $1,200,000</a>
|
||||||
<a href="#" id="location-purchase-32gb" class="a-link-button"> Purchase 32GB Server - $10,000,000</a>
|
<a href="#" id="location-purchase-32gb" class="a-link-button"> Purchase 32GB Server - $2,400,000</a>
|
||||||
<a href="#" id="location-purchase-64gb" class="a-link-button"> Purchase 64GB Server - $20,000,000</a>
|
<a href="#" id="location-purchase-64gb" class="a-link-button"> Purchase 64GB Server - $4,800,000</a>
|
||||||
<a href="#" id="location-purchase-128gb" class="a-link-button"> Purchase 128GB Server - $50,000,000</a>
|
<a href="#" id="location-purchase-128gb" class="a-link-button"> Purchase 128GB Server - $9,600,000</a>
|
||||||
<a href="#" id="location-purchase-256gb" class="a-link-button"> Purchase 256GB Server - $100,000,000</a>
|
<a href="#" id="location-purchase-256gb" class="a-link-button"> Purchase 256GB Server - $19,200,000</a>
|
||||||
<a href="#" id="location-purchase-512gb" class="a-link-button"> Purchase 512GB Server - $250,000,000</a>
|
<a href="#" id="location-purchase-512gb" class="a-link-button"> Purchase 512GB Server - $38,400,000</a>
|
||||||
<a href="#" id="location-purchase-1tb" class="a-link-button"> Purchase 1TB Server - $750,000,000</a>
|
<a href="#" id="location-purchase-1tb" class="a-link-button"> Purchase 1TB Server - $75,000,000</a>
|
||||||
<a href="#" id="location-purchase-tor" class="a-link-button"> Purchase TOR Router - $100,000</a>
|
<a href="#" id="location-purchase-tor" class="a-link-button"> Purchase TOR Router - $100,000</a>
|
||||||
<a href="#" id="location-purchase-home-ram" class="a-link-button"> Purchase RAM for Home computer </a>
|
<a href="#" id="location-purchase-home-ram" class="a-link-button"> Purchase RAM for Home computer </a>
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@ function Augmentation(name) {
|
|||||||
|
|
||||||
//Level - Only applicable for some augmentations
|
//Level - Only applicable for some augmentations
|
||||||
// NeuroFlux Governor
|
// NeuroFlux Governor
|
||||||
this.level = 1;
|
this.level = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
Augmentation.prototype.setInfo = function(inf) {
|
Augmentation.prototype.setInfo = function(inf) {
|
||||||
@ -686,7 +686,7 @@ initAugmentations = function() {
|
|||||||
var ADRPheromone1 = new Augmentation(AugmentationNames.ADRPheromone1);
|
var ADRPheromone1 = new Augmentation(AugmentationNames.ADRPheromone1);
|
||||||
ADRPheromone1.setRequirements(1500, 2000000);
|
ADRPheromone1.setRequirements(1500, 2000000);
|
||||||
ADRPheromone1.setInfo("The body is genetically re-engineered so that it produces the ADR-V1 pheromone, " +
|
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 " +
|
"an artificial pheromone discovered by scientists. The ADR-V1 pheromone, when excreted, " +
|
||||||
"triggers feelings of admiration and approval in other people. <br><br>" +
|
"triggers feelings of admiration and approval in other people. <br><br>" +
|
||||||
"This augmentation: <br>" +
|
"This augmentation: <br>" +
|
||||||
"Increases the amount of reputation the player gains when working for a company by 10% <br>" +
|
"Increases the amount of reputation the player gains when working for a company by 10% <br>" +
|
||||||
@ -776,27 +776,23 @@ initAugmentations = function() {
|
|||||||
var oldAug = Augmentations[AugmentationNames.NeuroFluxGovernor];
|
var oldAug = Augmentations[AugmentationNames.NeuroFluxGovernor];
|
||||||
NeuroFluxGovernor.owned = oldAug.owned;
|
NeuroFluxGovernor.owned = oldAug.owned;
|
||||||
NeuroFluxGovernor.level = oldAug.level;
|
NeuroFluxGovernor.level = oldAug.level;
|
||||||
var mult = 1;
|
mult = Math.pow(CONSTANTS.NeuroFluxGovernorLevelMult, NeuroFluxGovernor.level);
|
||||||
if (NeuroFluxGovernor.level > 1) {
|
|
||||||
mult = Math.pow(CONSTANTS.NeuroFluxGovernorLevelMult, NeuroFluxGovernor.level-1);
|
|
||||||
}
|
|
||||||
NeuroFluxGovernor.setRequirements(1000 * mult, 1000000 * mult);
|
NeuroFluxGovernor.setRequirements(1000 * mult, 1000000 * mult);
|
||||||
delete Augmentations[AugmentationNames.NeuroFluxGovernor];
|
delete Augmentations[AugmentationNames.NeuroFluxGovernor];
|
||||||
} else {
|
} else {
|
||||||
NeuroFluxGovernor.setRequirements(1000, 1000000);
|
NeuroFluxGovernor.setRequirements(750, 1000000);
|
||||||
NeuroFluxGovernor.level = 1;
|
|
||||||
}
|
}
|
||||||
NeuroFluxGovernor.setInfo("A device that is embedded in the back of the neck. The NeuroFlux Governor " +
|
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, " +
|
"monitors and regulates nervous impulses coming to and from the spinal column, " +
|
||||||
"essentially 'governing' the body. By doing so, it improves the functionality of the " +
|
"essentially 'governing' the body. By doing so, it improves the functionality of the " +
|
||||||
"body's nervous system. <br><br> " +
|
"body's nervous system. <br><br> " +
|
||||||
"This is a special augmentation because it can be leveled up. Each level of this augmentation " +
|
"This is a special augmentation because it can be leveled up infinitely. Each level of this augmentation " +
|
||||||
"increases all of the player's stats by 0.5%.")
|
"increases all of the player's stats and experience gains by 0.5%.")
|
||||||
NeuroFluxGovernor.addToAllFactions();
|
NeuroFluxGovernor.addToAllFactions();
|
||||||
AddToAugmentations(NeuroFluxGovernor);
|
AddToAugmentations(NeuroFluxGovernor);
|
||||||
|
|
||||||
var Neurotrainer1 = new Augmentation(AugmentationNames.Neurotrainer1);
|
var Neurotrainer1 = new Augmentation(AugmentationNames.Neurotrainer1);
|
||||||
Neurotrainer1.setRequirements(1000, 750000);
|
Neurotrainer1.setRequirements(500, 750000);
|
||||||
Neurotrainer1.setInfo("A decentralized cranial implant that improves the brain's ability to learn. It is " +
|
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 " +
|
"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 " +
|
"attaches to a different neural pathway to enhance the brain's ability to retain " +
|
||||||
@ -1061,12 +1057,18 @@ applyAugmentation = function(aug, faction) {
|
|||||||
|
|
||||||
//Misc augmentations
|
//Misc augmentations
|
||||||
case AugmentationNames.NeuroFluxGovernor:
|
case AugmentationNames.NeuroFluxGovernor:
|
||||||
Player.hacking_mult *= 1.005;
|
Player.hacking_mult *= 1.005;
|
||||||
Player.strength_mult *= 1.005;
|
Player.strength_mult *= 1.005;
|
||||||
Player.defense_mult *= 1.005;
|
Player.defense_mult *= 1.005;
|
||||||
Player.dexterity_mult *= 1.005;
|
Player.dexterity_mult *= 1.005;
|
||||||
Player.agility_mult *= 1.005;
|
Player.agility_mult *= 1.005;
|
||||||
Player.charisma_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;
|
||||||
++aug.level;
|
++aug.level;
|
||||||
break;
|
break;
|
||||||
case AugmentationNames.Neurotrainer1: //Low Level
|
case AugmentationNames.Neurotrainer1: //Low Level
|
||||||
|
174
src/Company.js
174
src/Company.js
@ -189,6 +189,26 @@ CompanyPosition.prototype.isAgentJob = function() {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CompanyPosition.prototype.isSoftwareConsultantJob = function() {
|
||||||
|
if (this.positionName == "Software Consultant" ||
|
||||||
|
this.positionName == "Senior Software Consultant") {return true;}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
CompanyPosition.prototype.isBusinessConsultantJob = function() {
|
||||||
|
if (this.positionName == "Business Consultant" ||
|
||||||
|
this.positionName == "Senior Business Consultant") {return true;}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
CompanyPosition.prototype.isPartTimeJob = function() {
|
||||||
|
if (this.isSoftwareConsultantJob() ||
|
||||||
|
this.isBusinessConsultantJob() ||
|
||||||
|
this.positionName == "Part-time Waiter" ||
|
||||||
|
this.positionName == "Part-time Employee") {return true;}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
CompanyPosition.prototype.toJSON = function() {
|
CompanyPosition.prototype.toJSON = function() {
|
||||||
return Generic_toJSON("CompanyPosition", this);
|
return Generic_toJSON("CompanyPosition", this);
|
||||||
}
|
}
|
||||||
@ -203,46 +223,58 @@ CompanyPositions = {
|
|||||||
//Constructor: CompanyPosition(name, reqHack, reqStr, reqDef, reqDex, reqAgi, reqCha, reqRep, salary)
|
//Constructor: CompanyPosition(name, reqHack, reqStr, reqDef, reqDex, reqAgi, reqCha, reqRep, salary)
|
||||||
|
|
||||||
//Software
|
//Software
|
||||||
SoftwareIntern: new CompanyPosition("Software Engineering Intern", 1, 0, 0, 0, 0, 0, 0, 1.2),
|
SoftwareIntern: new CompanyPosition("Software Engineering Intern", 1, 0, 0, 0, 0, 0, 0, 2),
|
||||||
JuniorDev: new CompanyPosition("Junior Software Engineer", 51, 0, 0, 0, 0, 0, 8000, 6),
|
JuniorDev: new CompanyPosition("Junior Software Engineer", 51, 0, 0, 0, 0, 0, 8000, 10),
|
||||||
SeniorDev: new CompanyPosition("Senior Software Engineer", 251, 0, 0, 0, 0, 51, 32000, 15),
|
SeniorDev: new CompanyPosition("Senior Software Engineer", 251, 0, 0, 0, 0, 51, 32000, 40),
|
||||||
LeadDev: new CompanyPosition("Lead Software Developer", 401, 0, 0, 0, 0, 151, 144000, 20),
|
LeadDev: new CompanyPosition("Lead Software Developer", 401, 0, 0, 0, 0, 151, 144000, 120),
|
||||||
|
|
||||||
|
//TODO Through darkweb, maybe?
|
||||||
|
FreelanceDeveloper: new CompanyPosition("Freelance Developer", 0, 0, 0, 0, 0, 0, 0, 0),
|
||||||
|
|
||||||
|
SoftwareConsultant: new CompanyPosition("Software Consultant", 51, 0, 0, 0, 0, 0, 0, 8),
|
||||||
|
SeniorSoftwareConsultant: new CompanyPosition("Senior Software Consultant", 251, 0, 0, 0, 0, 51, 0, 32),
|
||||||
|
|
||||||
//IT
|
//IT
|
||||||
ITIntern: new CompanyPosition("IT Intern", 1, 0, 0, 0, 0, 0, 0, 1),
|
ITIntern: new CompanyPosition("IT Intern", 1, 0, 0, 0, 0, 0, 0, 1.75),
|
||||||
ITAnalyst: new CompanyPosition("IT Analyst", 26, 0, 0, 0, 0, 0, 6000, 4),
|
ITAnalyst: new CompanyPosition("IT Analyst", 26, 0, 0, 0, 0, 0, 6000, 7.5),
|
||||||
ITManager: new CompanyPosition("IT Manager", 151, 0, 0, 0, 0, 51, 24000, 14),
|
ITManager: new CompanyPosition("IT Manager", 151, 0, 0, 0, 0, 51, 24000, 35),
|
||||||
SysAdmin: new CompanyPosition("Systems Administrator", 251, 0, 0, 0, 0, 76, 120000, 14),
|
SysAdmin: new CompanyPosition("Systems Administrator", 251, 0, 0, 0, 0, 76, 120000, 100),
|
||||||
SecurityEngineer: new CompanyPosition("Security Engineer", 151, 0, 0, 0, 0, 26, 28000, 12),
|
SecurityEngineer: new CompanyPosition("Security Engineer", 151, 0, 0, 0, 0, 26, 28000, 35),
|
||||||
NetworkEngineer: new CompanyPosition("Network Engineer", 151, 0, 0, 0, 0, 26, 28000, 12),
|
NetworkEngineer: new CompanyPosition("Network Engineer", 151, 0, 0, 0, 0, 26, 28000, 35),
|
||||||
NetworkAdministrator: new CompanyPosition("Network Administrator", 251, 0, 0, 0, 0, 76, 120000, 15),
|
NetworkAdministrator: new CompanyPosition("Network Administrator", 251, 0, 0, 0, 0, 76, 120000, 100),
|
||||||
|
|
||||||
//Technology management
|
//Technology management
|
||||||
HeadOfSoftware: new CompanyPosition("Head of Software", 501, 0, 0, 0, 0, 251, 288000, 35),
|
HeadOfSoftware: new CompanyPosition("Head of Software", 501, 0, 0, 0, 0, 251, 288000, 250),
|
||||||
HeadOfEngineering: new CompanyPosition("Head of Engineering", 501, 0, 0, 0, 0, 251, 576000, 40),
|
HeadOfEngineering: new CompanyPosition("Head of Engineering", 501, 0, 0, 0, 0, 251, 576000, 400),
|
||||||
VicePresident: new CompanyPosition("Vice President of Technology", 601, 0, 0, 0, 0, 401, 1152000, 45),
|
VicePresident: new CompanyPosition("Vice President of Technology", 601, 0, 0, 0, 0, 401, 1152000, 600),
|
||||||
CTO: new CompanyPosition("Chief Technology Officer", 751, 0, 0, 0, 0, 501, 4608000, 50),
|
CTO: new CompanyPosition("Chief Technology Officer", 751, 0, 0, 0, 0, 501, 4608000, 750),
|
||||||
|
|
||||||
//Business
|
//Business
|
||||||
BusinessIntern: new CompanyPosition("Business Intern", 1, 0, 0, 0, 0, 1, 0, 1.2),
|
BusinessIntern: new CompanyPosition("Business Intern", 1, 0, 0, 0, 0, 1, 0, 2.5),
|
||||||
BusinessAnalyst: new CompanyPosition("Business Analyst", 6, 0, 0, 0, 0, 51, 8000, 10),
|
BusinessAnalyst: new CompanyPosition("Business Analyst", 6, 0, 0, 0, 0, 51, 8000, 15),
|
||||||
BusinessManager: new CompanyPosition("Business Manager", 51, 0, 0, 0, 0, 101, 32000, 18),
|
BusinessManager: new CompanyPosition("Business Manager", 51, 0, 0, 0, 0, 101, 32000, 60),
|
||||||
OperationsManager: new CompanyPosition("Operations Manager", 51, 0, 0, 0, 0, 201, 144000, 22),
|
OperationsManager: new CompanyPosition("Operations Manager", 51, 0, 0, 0, 0, 226, 144000, 180),
|
||||||
CFO: new CompanyPosition("Chief Financial Officer", 76, 0, 0, 0, 0, 501, 576000, 50),
|
CFO: new CompanyPosition("Chief Financial Officer", 76, 0, 0, 0, 0, 501, 576000, 600),
|
||||||
CEO: new CompanyPosition("Chief Executive Officer", 101, 0, 0, 0, 0, 751, 4608000, 100),
|
CEO: new CompanyPosition("Chief Executive Officer", 101, 0, 0, 0, 0, 751, 4608000, 1000),
|
||||||
|
|
||||||
|
BusinessConsultant: new CompanyPosition("Business Consultant", 6, 0, 0, 0, 0, 51, 0, 12),
|
||||||
|
SeniorBusinessConsultant: new CompanyPosition("Senior Business Consultant", 51, 0, 0, 0, 0, 226, 0, 150),
|
||||||
|
|
||||||
//Non-tech/management jobs
|
//Non-tech/management jobs
|
||||||
Waiter: new CompanyPosition("Waiter", 0, 0, 0, 0, 0, 0, 0, .75),
|
PartTimeWaiter: new CompanyPosition("Part-time Waiter", 0, 0, 0, 0, 0, 0, 0, 1.5),
|
||||||
Employee: new CompanyPosition("Employee", 0, 0, 0, 0, 0, 0, 0, .75),
|
PartTimeEmployee: new CompanyPosition("Part-time Employee", 0, 0, 0, 0, 0, 0, 0, 1.5),
|
||||||
PoliceOfficer: new CompanyPosition("Police Officer", 11, 101, 101, 101, 101, 51, 8000, 5),
|
|
||||||
PoliceChief: new CompanyPosition("Police Chief", 101, 301, 301, 301, 301, 151, 32000, 12),
|
Waiter: new CompanyPosition("Waiter", 0, 0, 0, 0, 0, 0, 0, 2),
|
||||||
SecurityGuard: new CompanyPosition("Security Guard", 0, 51, 51, 51, 51, 1, 0, 4),
|
Employee: new CompanyPosition("Employee", 0, 0, 0, 0, 0, 0, 0, 2),
|
||||||
SecurityOfficer: new CompanyPosition("Security Officer", 26, 151, 151, 151, 151, 51, 8000, 8),
|
PoliceOfficer: new CompanyPosition("Police Officer", 11, 101, 101, 101, 101, 51, 8000, 25),
|
||||||
SecuritySupervisor: new CompanyPosition("Security Supervisor", 26, 251, 251, 251, 251, 101, 32000, 15),
|
PoliceChief: new CompanyPosition("Police Chief", 101, 301, 301, 301, 301, 151, 32000, 100),
|
||||||
HeadOfSecurity: new CompanyPosition("Head of Security", 51, 501, 501, 501, 501, 151, 144000, 22),
|
SecurityGuard: new CompanyPosition("Security Guard", 0, 51, 51, 51, 51, 1, 0, 10),
|
||||||
FieldAgent: new CompanyPosition("Field Agent", 101, 101, 101, 101, 101, 101, 8000, 6),
|
SecurityOfficer: new CompanyPosition("Security Officer", 26, 151, 151, 151, 151, 51, 8000, 40),
|
||||||
SecretAgent: new CompanyPosition("Secret Agent", 201, 251, 251, 251, 251, 32000, 15),
|
SecuritySupervisor: new CompanyPosition("Security Supervisor", 26, 251, 251, 251, 251, 101, 32000, 80),
|
||||||
SpecialOperative: new CompanyPosition("Special Operative", 251, 501, 501, 501, 501, 144000, 25),
|
HeadOfSecurity: new CompanyPosition("Head of Security", 51, 501, 501, 501, 501, 151, 144000, 250),
|
||||||
|
FieldAgent: new CompanyPosition("Field Agent", 101, 101, 101, 101, 101, 101, 8000, 30),
|
||||||
|
SecretAgent: new CompanyPosition("Secret Agent", 201, 251, 251, 251, 251, 32000, 120),
|
||||||
|
SpecialOperative: new CompanyPosition("Special Operative", 251, 501, 501, 501, 501, 144000, 300),
|
||||||
|
|
||||||
init: function() {
|
init: function() {
|
||||||
//Argument order: hack, str, def, dex, agi, cha
|
//Argument order: hack, str, def, dex, agi, cha
|
||||||
@ -256,6 +288,11 @@ CompanyPositions = {
|
|||||||
CompanyPositions.LeadDev.setPerformanceParameters(70, 0, 0, 0, 0, 30);
|
CompanyPositions.LeadDev.setPerformanceParameters(70, 0, 0, 0, 0, 30);
|
||||||
CompanyPositions.LeadDev.setExperienceGains(.5, 0, 0, 0, 0, .1);
|
CompanyPositions.LeadDev.setExperienceGains(.5, 0, 0, 0, 0, .1);
|
||||||
|
|
||||||
|
CompanyPositions.SoftwareConsultant.setPerformanceParameters(80, 0, 0, 0, 0, 20);
|
||||||
|
CompanyPositions.SoftwareConsultant.setExperienceGains(.175, 0, 0, 0, 0, .03);
|
||||||
|
CompanyPositions.SeniorSoftwareConsultant.setPerformanceParameters(75, 0, 0, 0, 0, 25);
|
||||||
|
CompanyPositions.SeniorSoftwareConsultant.setExperienceGains(.35, 0, 0, 0, 0, .06);
|
||||||
|
|
||||||
//Security
|
//Security
|
||||||
CompanyPositions.ITIntern.setPerformanceParameters(90, 0, 0, 0, 0, 10);
|
CompanyPositions.ITIntern.setPerformanceParameters(90, 0, 0, 0, 0, 10);
|
||||||
CompanyPositions.ITIntern.setExperienceGains(.05, 0, 0, 0, 0, .01);
|
CompanyPositions.ITIntern.setExperienceGains(.05, 0, 0, 0, 0, .01);
|
||||||
@ -296,12 +333,21 @@ CompanyPositions = {
|
|||||||
CompanyPositions.CEO.setPerformanceParameters(10, 0, 0, 0, 0, 90);
|
CompanyPositions.CEO.setPerformanceParameters(10, 0, 0, 0, 0, 90);
|
||||||
CompanyPositions.CEO.setExperienceGains(.1, 0, 0, 0, 0, 1.5);
|
CompanyPositions.CEO.setExperienceGains(.1, 0, 0, 0, 0, 1.5);
|
||||||
|
|
||||||
|
CompanyPositions.BusinessConsultant.setPerformanceParameters(20, 0, 0, 0, 0, 80);
|
||||||
|
CompanyPositions.BusinessConsultant.setExperienceGains(.015, 0, 0, 0, 0, .15);
|
||||||
|
CompanyPositions.SeniorBusinessConsultant.setPerformanceParameters(15, 0, 0, 0, 0, 85);
|
||||||
|
CompanyPositions.SeniorBusinessConsultant.setExperienceGains(.015, 0, 0, 0, 0, .3);
|
||||||
|
|
||||||
//Non-tech/management jobs
|
//Non-tech/management jobs
|
||||||
//TODO These parameters might need to be balanced
|
CompanyPositions.PartTimeWaiter.setPerformanceParameters(0, 10, 0, 10, 10, 70);
|
||||||
|
CompanyPositions.PartTimeWaiter.setExperienceGains(0, .0075, .0075, .0075, .0075, .04);
|
||||||
|
CompanyPositions.PartTimeEmployee.setPerformanceParameters(0, 10, 0, 10, 10, 70);
|
||||||
|
CompanyPositions.PartTimeEmployee.setExperienceGains(0, .0075, .0075, .0075, .0075, .03);
|
||||||
|
|
||||||
CompanyPositions.Waiter.setPerformanceParameters(0, 10, 0, 10, 10, 70);
|
CompanyPositions.Waiter.setPerformanceParameters(0, 10, 0, 10, 10, 70);
|
||||||
CompanyPositions.Waiter.setExperienceGains(0, .01, .01, .01, .01, .05);
|
CompanyPositions.Waiter.setExperienceGains(0, .01, .01, .01, .01, .05);
|
||||||
CompanyPositions.Employee.setPerformanceParameters(0, 10, 0, 10, 10, 70);
|
CompanyPositions.Employee.setPerformanceParameters(0, 10, 0, 10, 10, 70);
|
||||||
CompanyPositions.Employee.setExperienceGains(0, .01, .01, .01, .01, .015);
|
CompanyPositions.Employee.setExperienceGains(0, .01, .01, .01, .01, .04);
|
||||||
CompanyPositions.SecurityGuard.setPerformanceParameters(5, 20, 20, 20, 20, 15);
|
CompanyPositions.SecurityGuard.setPerformanceParameters(5, 20, 20, 20, 20, 15);
|
||||||
CompanyPositions.SecurityGuard.setExperienceGains(.01, .02, .02, .02, .02, .01);
|
CompanyPositions.SecurityGuard.setExperienceGains(.01, .02, .02, .02, .02, .01);
|
||||||
CompanyPositions.PoliceOfficer.setPerformanceParameters(5, 20, 20, 20, 20, 15);
|
CompanyPositions.PoliceOfficer.setPerformanceParameters(5, 20, 20, 20, 20, 15);
|
||||||
@ -340,6 +386,11 @@ getNextCompanyPosition = function(currPos) {
|
|||||||
return CompanyPositions.HeadOfSoftware;
|
return CompanyPositions.HeadOfSoftware;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Software Consultant
|
||||||
|
if (currPos.positionName == CompanyPositions.SoftwareConsultant.positionName) {
|
||||||
|
return CompanyPositions.SeniorSoftwareConsultant;
|
||||||
|
}
|
||||||
|
|
||||||
//IT
|
//IT
|
||||||
if (currPos.positionName == CompanyPositions.ITIntern.positionName) {
|
if (currPos.positionName == CompanyPositions.ITIntern.positionName) {
|
||||||
return CompanyPositions.ITAnalyst;
|
return CompanyPositions.ITAnalyst;
|
||||||
@ -393,6 +444,11 @@ getNextCompanyPosition = function(currPos) {
|
|||||||
return CompanyPositions.CEO;
|
return CompanyPositions.CEO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Business consultant
|
||||||
|
if (currPos.positionName == CompanyPositions.BusinessConsultant.positionName) {
|
||||||
|
return CompanyPositions.SeniorBusinessConsultant;
|
||||||
|
}
|
||||||
|
|
||||||
//Police
|
//Police
|
||||||
if (currPos.positionName == CompanyPositions.PoliceOffier.positionName) {
|
if (currPos.positionName == CompanyPositions.PoliceOffier.positionName) {
|
||||||
return CompanyPositions.PoliceChief;
|
return CompanyPositions.PoliceChief;
|
||||||
@ -420,7 +476,7 @@ getNextCompanyPosition = function(currPos) {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Initialize all companies. Only called when creating new game. Otherwise companies are
|
/* Initialize all companies. Only called when creating new game/prestiging. Otherwise companies are
|
||||||
* usually loaded from localStorage */
|
* usually loaded from localStorage */
|
||||||
initCompanies = function() {
|
initCompanies = function() {
|
||||||
/* Companies that also have servers */
|
/* Companies that also have servers */
|
||||||
@ -570,6 +626,7 @@ initCompanies = function() {
|
|||||||
StormTechnologies.addPositions([
|
StormTechnologies.addPositions([
|
||||||
CompanyPositions.SoftwareIntern,
|
CompanyPositions.SoftwareIntern,
|
||||||
CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, CompanyPositions.LeadDev,
|
CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, CompanyPositions.LeadDev,
|
||||||
|
CompanyPositions.SoftwareConsultant, CompanyPositions.SeniorSoftwareConsultant,
|
||||||
CompanyPositions.ITAnalyst, CompanyPositions.ITManager, CompanyPositions.SysAdmin,
|
CompanyPositions.ITAnalyst, CompanyPositions.ITManager, CompanyPositions.SysAdmin,
|
||||||
CompanyPositions.SecurityEngineer, CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator,
|
CompanyPositions.SecurityEngineer, CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator,
|
||||||
CompanyPositions.HeadOfSoftware, CompanyPositions.HeadOfEngineering,
|
CompanyPositions.HeadOfSoftware, CompanyPositions.HeadOfEngineering,
|
||||||
@ -582,7 +639,8 @@ initCompanies = function() {
|
|||||||
DefComm.init(Locations.NewTokyoDefComm, 1.75, 1.75, 199);
|
DefComm.init(Locations.NewTokyoDefComm, 1.75, 1.75, 199);
|
||||||
DefComm.addPositions([
|
DefComm.addPositions([
|
||||||
CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev,
|
CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev,
|
||||||
CompanyPositions.LeadDev, CompanyPositions.ITIntern, CompanyPositions.ITAnalyst,
|
CompanyPositions.LeadDev, CompanyPositions.SoftwareConsultant, CompanyPositions.SeniorSoftwareConsultant,
|
||||||
|
CompanyPositions.ITIntern, CompanyPositions.ITAnalyst,
|
||||||
CompanyPositions.ITManager, CompanyPositions.SysAdmin, CompanyPositions.SecurityEngineer,
|
CompanyPositions.ITManager, CompanyPositions.SysAdmin, CompanyPositions.SecurityEngineer,
|
||||||
CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, CompanyPositions.HeadOfSoftware,
|
CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, CompanyPositions.HeadOfSoftware,
|
||||||
CompanyPositions.HeadOfEngineering, CompanyPositions.CTO, CompanyPositions.CFO, CompanyPositions.CEO]);
|
CompanyPositions.HeadOfEngineering, CompanyPositions.CTO, CompanyPositions.CFO, CompanyPositions.CEO]);
|
||||||
@ -592,7 +650,8 @@ initCompanies = function() {
|
|||||||
HeliosLabs.init(Locations.VolhavenHeliosLabs, 1.8, 1.8, 199);
|
HeliosLabs.init(Locations.VolhavenHeliosLabs, 1.8, 1.8, 199);
|
||||||
HeliosLabs.addPositions([
|
HeliosLabs.addPositions([
|
||||||
CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev,
|
CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev,
|
||||||
CompanyPositions.LeadDev, CompanyPositions.ITIntern, CompanyPositions.ITAnalyst,
|
CompanyPositions.LeadDev, CompanyPositions.SoftwareConsultant, CompanyPositions.SeniorSoftwareConsultant,
|
||||||
|
CompanyPositions.ITIntern, CompanyPositions.ITAnalyst,
|
||||||
CompanyPositions.ITManager, CompanyPositions.SysAdmin, CompanyPositions.SecurityEngineer,
|
CompanyPositions.ITManager, CompanyPositions.SysAdmin, CompanyPositions.SecurityEngineer,
|
||||||
CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, CompanyPositions.HeadOfSoftware,
|
CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, CompanyPositions.HeadOfSoftware,
|
||||||
CompanyPositions.HeadOfEngineering, CompanyPositions.CTO, CompanyPositions.CFO, CompanyPositions.CEO]);
|
CompanyPositions.HeadOfEngineering, CompanyPositions.CTO, CompanyPositions.CFO, CompanyPositions.CEO]);
|
||||||
@ -602,7 +661,8 @@ initCompanies = function() {
|
|||||||
VitaLife.init(Locations.NewTokyoVitaLife, 1.8, 1.8, 199);
|
VitaLife.init(Locations.NewTokyoVitaLife, 1.8, 1.8, 199);
|
||||||
VitaLife.addPositions([
|
VitaLife.addPositions([
|
||||||
CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev,
|
CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev,
|
||||||
CompanyPositions.LeadDev, CompanyPositions.ITIntern, CompanyPositions.ITAnalyst,
|
CompanyPositions.LeadDev, CompanyPositions.SoftwareConsultant, CompanyPositions.SeniorSoftwareConsultant,
|
||||||
|
CompanyPositions.ITIntern, CompanyPositions.ITAnalyst,
|
||||||
CompanyPositions.ITManager, CompanyPositions.SysAdmin, CompanyPositions.SecurityEngineer,
|
CompanyPositions.ITManager, CompanyPositions.SysAdmin, CompanyPositions.SecurityEngineer,
|
||||||
CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, CompanyPositions.HeadOfSoftware,
|
CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, CompanyPositions.HeadOfSoftware,
|
||||||
CompanyPositions.HeadOfEngineering, CompanyPositions.CTO, CompanyPositions.BusinessManager,
|
CompanyPositions.HeadOfEngineering, CompanyPositions.CTO, CompanyPositions.BusinessManager,
|
||||||
@ -613,7 +673,8 @@ initCompanies = function() {
|
|||||||
IcarusMicrosystems.init(Locations.Sector12IcarusMicrosystems, 1.9, 1.9, 199);
|
IcarusMicrosystems.init(Locations.Sector12IcarusMicrosystems, 1.9, 1.9, 199);
|
||||||
IcarusMicrosystems.addPositions([
|
IcarusMicrosystems.addPositions([
|
||||||
CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev,
|
CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev,
|
||||||
CompanyPositions.LeadDev, CompanyPositions.ITIntern, CompanyPositions.ITAnalyst,
|
CompanyPositions.LeadDev, CompanyPositions.SoftwareConsultant, CompanyPositions.SeniorSoftwareConsultant,
|
||||||
|
CompanyPositions.ITIntern, CompanyPositions.ITAnalyst,
|
||||||
CompanyPositions.ITManager, CompanyPositions.SysAdmin, CompanyPositions.SecurityEngineer,
|
CompanyPositions.ITManager, CompanyPositions.SysAdmin, CompanyPositions.SecurityEngineer,
|
||||||
CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, CompanyPositions.HeadOfSoftware,
|
CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, CompanyPositions.HeadOfSoftware,
|
||||||
CompanyPositions.HeadOfEngineering, CompanyPositions.CTO, CompanyPositions.BusinessManager,
|
CompanyPositions.HeadOfEngineering, CompanyPositions.CTO, CompanyPositions.BusinessManager,
|
||||||
@ -624,7 +685,8 @@ initCompanies = function() {
|
|||||||
UniversalEnergy.init(Locations.Sector12UniversalEnergy, 2.0, 2.0, 199);
|
UniversalEnergy.init(Locations.Sector12UniversalEnergy, 2.0, 2.0, 199);
|
||||||
UniversalEnergy.addPositions([
|
UniversalEnergy.addPositions([
|
||||||
CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev,
|
CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev,
|
||||||
CompanyPositions.LeadDev, CompanyPositions.ITIntern, CompanyPositions.ITAnalyst,
|
CompanyPositions.LeadDev, CompanyPositions.SoftwareConsultant, CompanyPositions.SeniorSoftwareConsultant,
|
||||||
|
CompanyPositions.ITIntern, CompanyPositions.ITAnalyst,
|
||||||
CompanyPositions.ITManager, CompanyPositions.SysAdmin, CompanyPositions.SecurityEngineer,
|
CompanyPositions.ITManager, CompanyPositions.SysAdmin, CompanyPositions.SecurityEngineer,
|
||||||
CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, CompanyPositions.HeadOfSoftware,
|
CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, CompanyPositions.HeadOfSoftware,
|
||||||
CompanyPositions.HeadOfEngineering, CompanyPositions.CTO, CompanyPositions.BusinessManager,
|
CompanyPositions.HeadOfEngineering, CompanyPositions.CTO, CompanyPositions.BusinessManager,
|
||||||
@ -635,7 +697,8 @@ initCompanies = function() {
|
|||||||
GalacticCybersystems.init(Locations.AevumGalacticCybersystems, 1.9, 1.9, 199);
|
GalacticCybersystems.init(Locations.AevumGalacticCybersystems, 1.9, 1.9, 199);
|
||||||
GalacticCybersystems.addPositions([
|
GalacticCybersystems.addPositions([
|
||||||
CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev,
|
CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev,
|
||||||
CompanyPositions.LeadDev, CompanyPositions.ITIntern, CompanyPositions.ITAnalyst,
|
CompanyPositions.LeadDev, CompanyPositions.SoftwareConsultant, CompanyPositions.SeniorSoftwareConsultant,
|
||||||
|
CompanyPositions.ITIntern, CompanyPositions.ITAnalyst,
|
||||||
CompanyPositions.ITManager, CompanyPositions.SysAdmin, CompanyPositions.SecurityEngineer,
|
CompanyPositions.ITManager, CompanyPositions.SysAdmin, CompanyPositions.SecurityEngineer,
|
||||||
CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, CompanyPositions.HeadOfSoftware,
|
CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, CompanyPositions.HeadOfSoftware,
|
||||||
CompanyPositions.HeadOfEngineering, CompanyPositions.CTO, CompanyPositions.BusinessManager,
|
CompanyPositions.HeadOfEngineering, CompanyPositions.CTO, CompanyPositions.BusinessManager,
|
||||||
@ -701,6 +764,7 @@ initCompanies = function() {
|
|||||||
GlobalPharmaceuticals.addPositions([
|
GlobalPharmaceuticals.addPositions([
|
||||||
CompanyPositions.SoftwareIntern, CompanyPositions.ITIntern, CompanyPositions.BusinessIntern,
|
CompanyPositions.SoftwareIntern, CompanyPositions.ITIntern, CompanyPositions.BusinessIntern,
|
||||||
CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, CompanyPositions.LeadDev,
|
CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, CompanyPositions.LeadDev,
|
||||||
|
CompanyPositions.SoftwareConsultant, CompanyPositions.SeniorSoftwareConsultant,
|
||||||
CompanyPositions.ITAnalyst, CompanyPositions.ITManager, CompanyPositions.SecurityEngineer,
|
CompanyPositions.ITAnalyst, CompanyPositions.ITManager, CompanyPositions.SecurityEngineer,
|
||||||
CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator,
|
CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator,
|
||||||
CompanyPositions.HeadOfSoftware, CompanyPositions.CTO, CompanyPositions.BusinessAnalyst,
|
CompanyPositions.HeadOfSoftware, CompanyPositions.CTO, CompanyPositions.BusinessAnalyst,
|
||||||
@ -714,6 +778,7 @@ initCompanies = function() {
|
|||||||
NovaMedical.addPositions([
|
NovaMedical.addPositions([
|
||||||
CompanyPositions.SoftwareIntern, CompanyPositions.ITIntern, CompanyPositions.BusinessIntern,
|
CompanyPositions.SoftwareIntern, CompanyPositions.ITIntern, CompanyPositions.BusinessIntern,
|
||||||
CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, CompanyPositions.LeadDev,
|
CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, CompanyPositions.LeadDev,
|
||||||
|
CompanyPositions.SoftwareConsultant, CompanyPositions.SeniorSoftwareConsultant,
|
||||||
CompanyPositions.ITAnalyst, CompanyPositions.ITManager, CompanyPositions.SecurityEngineer,
|
CompanyPositions.ITAnalyst, CompanyPositions.ITManager, CompanyPositions.SecurityEngineer,
|
||||||
CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator,
|
CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator,
|
||||||
CompanyPositions.HeadOfSoftware, CompanyPositions.CTO, CompanyPositions.BusinessAnalyst,
|
CompanyPositions.HeadOfSoftware, CompanyPositions.CTO, CompanyPositions.BusinessAnalyst,
|
||||||
@ -751,7 +816,8 @@ initCompanies = function() {
|
|||||||
WatchdogSecurity.init(Locations.AevumWatchdogSecurity, 1.5, 1.5, 124);
|
WatchdogSecurity.init(Locations.AevumWatchdogSecurity, 1.5, 1.5, 124);
|
||||||
WatchdogSecurity.addPositions([
|
WatchdogSecurity.addPositions([
|
||||||
CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev,
|
CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev,
|
||||||
CompanyPositions.LeadDev, CompanyPositions.ITIntern, CompanyPositions.ITAnalyst,
|
CompanyPositions.LeadDev, CompanyPositions.SoftwareConsultant, CompanyPositions.SeniorSoftwareConsultant,
|
||||||
|
CompanyPositions.ITIntern, CompanyPositions.ITAnalyst,
|
||||||
CompanyPositions.ITManager, CompanyPositions.SysAdmin, CompanyPositions.SecurityEngineer,
|
CompanyPositions.ITManager, CompanyPositions.SysAdmin, CompanyPositions.SecurityEngineer,
|
||||||
CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, CompanyPositions.HeadOfSoftware,
|
CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, CompanyPositions.HeadOfSoftware,
|
||||||
CompanyPositions.HeadOfEngineering, CompanyPositions.SecurityGuard, CompanyPositions.SecurityOfficer,
|
CompanyPositions.HeadOfEngineering, CompanyPositions.SecurityGuard, CompanyPositions.SecurityOfficer,
|
||||||
@ -764,7 +830,8 @@ initCompanies = function() {
|
|||||||
LexoCorp.init(Locations.VolhavenLexoCorp, 1.4, 1.4, 99);
|
LexoCorp.init(Locations.VolhavenLexoCorp, 1.4, 1.4, 99);
|
||||||
LexoCorp.addPositions([
|
LexoCorp.addPositions([
|
||||||
CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev,
|
CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev,
|
||||||
CompanyPositions.LeadDev, CompanyPositions.ITIntern, CompanyPositions.ITAnalyst,
|
CompanyPositions.LeadDev, CompanyPositions.SoftwareConsultant, CompanyPositions.SeniorSoftwareConsultant,
|
||||||
|
CompanyPositions.ITIntern, CompanyPositions.ITAnalyst,
|
||||||
CompanyPositions.ITManager, CompanyPositions.SysAdmin, CompanyPositions.SecurityEngineer,
|
CompanyPositions.ITManager, CompanyPositions.SysAdmin, CompanyPositions.SecurityEngineer,
|
||||||
CompanyPositions.NetworkEngineer, CompanyPositions.HeadOfSoftware, CompanyPositions.CTO,
|
CompanyPositions.NetworkEngineer, CompanyPositions.HeadOfSoftware, CompanyPositions.CTO,
|
||||||
CompanyPositions.BusinessIntern, CompanyPositions.BusinessAnalyst,
|
CompanyPositions.BusinessIntern, CompanyPositions.BusinessAnalyst,
|
||||||
@ -784,7 +851,8 @@ initCompanies = function() {
|
|||||||
AlphaEnterprises.init(Locations.Sector12AlphaEnterprises, 1.5, 1.5, 99);
|
AlphaEnterprises.init(Locations.Sector12AlphaEnterprises, 1.5, 1.5, 99);
|
||||||
AlphaEnterprises.addPositions([
|
AlphaEnterprises.addPositions([
|
||||||
CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev,
|
CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev,
|
||||||
CompanyPositions.LeadDev, CompanyPositions.BusinessIntern, CompanyPositions.BusinessAnalyst,
|
CompanyPositions.LeadDev, CompanyPositions.SoftwareConsultant, CompanyPositions.SeniorSoftwareConsultant,
|
||||||
|
CompanyPositions.BusinessIntern, CompanyPositions.BusinessAnalyst,
|
||||||
CompanyPositions.BusinessManager, CompanyPositions.OperationsManager]);
|
CompanyPositions.BusinessManager, CompanyPositions.OperationsManager]);
|
||||||
AddToCompanies(AlphaEnterprises);
|
AddToCompanies(AlphaEnterprises);
|
||||||
|
|
||||||
@ -809,7 +877,8 @@ initCompanies = function() {
|
|||||||
CompuTek.init(Locations.VolhavenCompuTek, 1.2, 1.2, 74);
|
CompuTek.init(Locations.VolhavenCompuTek, 1.2, 1.2, 74);
|
||||||
CompuTek.addPositions([
|
CompuTek.addPositions([
|
||||||
CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev,
|
CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev,
|
||||||
CompanyPositions.LeadDev, CompanyPositions.ITIntern, CompanyPositions.ITAnalyst,
|
CompanyPositions.LeadDev, CompanyPositions.SoftwareConsultant, CompanyPositions.SeniorSoftwareConsultant,
|
||||||
|
CompanyPositions.ITIntern, CompanyPositions.ITAnalyst,
|
||||||
CompanyPositions.ITManager, CompanyPositions.SysAdmin, CompanyPositions.SecurityEngineer,
|
CompanyPositions.ITManager, CompanyPositions.SysAdmin, CompanyPositions.SecurityEngineer,
|
||||||
CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, CompanyPositions.HeadOfSoftware,
|
CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, CompanyPositions.HeadOfSoftware,
|
||||||
CompanyPositions.CTO]);
|
CompanyPositions.CTO]);
|
||||||
@ -819,7 +888,8 @@ initCompanies = function() {
|
|||||||
NetLinkTechnologies.init(Locations.AevumNetLinkTechnologies, 1.2, 1.2, 99);
|
NetLinkTechnologies.init(Locations.AevumNetLinkTechnologies, 1.2, 1.2, 99);
|
||||||
NetLinkTechnologies.addPositions([
|
NetLinkTechnologies.addPositions([
|
||||||
CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev,
|
CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev,
|
||||||
CompanyPositions.LeadDev, CompanyPositions.ITIntern, CompanyPositions.ITAnalyst,
|
CompanyPositions.LeadDev, CompanyPositions.SoftwareConsultant, CompanyPositions.SeniorSoftwareConsultant,
|
||||||
|
CompanyPositions.ITIntern, CompanyPositions.ITAnalyst,
|
||||||
CompanyPositions.ITManager, CompanyPositions.SysAdmin, CompanyPositions.SecurityEngineer,
|
CompanyPositions.ITManager, CompanyPositions.SysAdmin, CompanyPositions.SecurityEngineer,
|
||||||
CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, CompanyPositions.HeadOfSoftware,
|
CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, CompanyPositions.HeadOfSoftware,
|
||||||
CompanyPositions.CTO]);
|
CompanyPositions.CTO]);
|
||||||
@ -829,7 +899,8 @@ initCompanies = function() {
|
|||||||
CarmichaelSecurity.init(Locations.Sector12CarmichaelSecurity, 1.2, 1.2, 74);
|
CarmichaelSecurity.init(Locations.Sector12CarmichaelSecurity, 1.2, 1.2, 74);
|
||||||
CarmichaelSecurity.addPositions([
|
CarmichaelSecurity.addPositions([
|
||||||
CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev,
|
CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev,
|
||||||
CompanyPositions.LeadDev, CompanyPositions.ITIntern, CompanyPositions.ITAnalyst,
|
CompanyPositions.LeadDev, CompanyPositions.SoftwareConsultant, CompanyPositions.SeniorSoftwareConsultant,
|
||||||
|
CompanyPositions.ITIntern, CompanyPositions.ITAnalyst,
|
||||||
CompanyPositions.ITManager, CompanyPositions.SysAdmin, CompanyPositions.SecurityEngineer,
|
CompanyPositions.ITManager, CompanyPositions.SysAdmin, CompanyPositions.SecurityEngineer,
|
||||||
CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, CompanyPositions.HeadOfSoftware,
|
CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, CompanyPositions.HeadOfSoftware,
|
||||||
CompanyPositions.HeadOfEngineering, CompanyPositions.SecurityGuard, CompanyPositions.SecurityOfficer,
|
CompanyPositions.HeadOfEngineering, CompanyPositions.SecurityGuard, CompanyPositions.SecurityOfficer,
|
||||||
@ -840,26 +911,27 @@ initCompanies = function() {
|
|||||||
//"Low level" companies
|
//"Low level" companies
|
||||||
var FoodNStuff = new Company();
|
var FoodNStuff = new Company();
|
||||||
FoodNStuff.init(Locations.Sector12FoodNStuff, 1, 1, 0);
|
FoodNStuff.init(Locations.Sector12FoodNStuff, 1, 1, 0);
|
||||||
FoodNStuff.addPositions([CompanyPositions.Employee]);
|
FoodNStuff.addPositions([CompanyPositions.Employee, CompanyPositions.PartTimeEmployee]);
|
||||||
AddToCompanies(FoodNStuff);
|
AddToCompanies(FoodNStuff);
|
||||||
|
|
||||||
var JoesGuns = new Company();
|
var JoesGuns = new Company();
|
||||||
JoesGuns.init(Locations.Sector12JoesGuns, 1, 1, 0);
|
JoesGuns.init(Locations.Sector12JoesGuns, 1, 1, 0);
|
||||||
JoesGuns.addPositions([CompanyPositions.Employee]);
|
JoesGuns.addPositions([CompanyPositions.Employee, CompanyPositions.PartTimeEmployee]);
|
||||||
AddToCompanies(JoesGuns);
|
AddToCompanies(JoesGuns);
|
||||||
|
|
||||||
var OmegaSoftware = new Company();
|
var OmegaSoftware = new Company();
|
||||||
OmegaSoftware.init(Locations.IshimaOmegaSoftware, 1.1, 1.1, 49);
|
OmegaSoftware.init(Locations.IshimaOmegaSoftware, 1.1, 1.1, 49);
|
||||||
OmegaSoftware.addPositions([
|
OmegaSoftware.addPositions([
|
||||||
CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev,
|
CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev,
|
||||||
CompanyPositions.LeadDev, CompanyPositions.ITIntern, CompanyPositions.ITAnalyst,
|
CompanyPositions.LeadDev, CompanyPositions.SoftwareConsultant, CompanyPositions.SeniorSoftwareConsultant,
|
||||||
|
CompanyPositions.ITIntern, CompanyPositions.ITAnalyst,
|
||||||
CompanyPositions.ITManager, CompanyPositions.CTO, CompanyPositions.CEO]);
|
CompanyPositions.ITManager, CompanyPositions.CTO, CompanyPositions.CEO]);
|
||||||
AddToCompanies(OmegaSoftware);
|
AddToCompanies(OmegaSoftware);
|
||||||
|
|
||||||
/* Companies that do not have servers */
|
/* Companies that do not have servers */
|
||||||
var NoodleBar = new Company();
|
var NoodleBar = new Company();
|
||||||
NoodleBar.init(Locations.NewTokyoNoodleBar, 1, 1, 0);
|
NoodleBar.init(Locations.NewTokyoNoodleBar, 1, 1, 0);
|
||||||
NoodleBar.addPositions([CompanyPositions.Waiter]);
|
NoodleBar.addPositions([CompanyPositions.Waiter, CompanyPositions.PartTimeWaiter]);
|
||||||
AddToCompanies(NoodleBar);
|
AddToCompanies(NoodleBar);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -125,6 +125,10 @@ PlayerObject.prototype.applyForSoftwareJob = function() {
|
|||||||
this.applyForJob(CompanyPositions.SoftwareIntern);
|
this.applyForJob(CompanyPositions.SoftwareIntern);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
PlayerObject.prototype.applyForSoftwareConsultantJob = function() {
|
||||||
|
this.applyForJob(CompanyPositions.SoftwareConsultant);
|
||||||
|
}
|
||||||
|
|
||||||
PlayerObject.prototype.applyForItJob = function() {
|
PlayerObject.prototype.applyForItJob = function() {
|
||||||
this.applyForJob(CompanyPositions.ITIntern);
|
this.applyForJob(CompanyPositions.ITIntern);
|
||||||
}
|
}
|
||||||
@ -154,6 +158,10 @@ PlayerObject.prototype.applyForBusinessJob = function() {
|
|||||||
this.applyForJob(CompanyPositions.BusinessIntern);
|
this.applyForJob(CompanyPositions.BusinessIntern);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
PlayerObject.prototype.applyForBusinessConsultantJob = function() {
|
||||||
|
this.applyForJob(CompanyPositions.BusinessConsultant);
|
||||||
|
}
|
||||||
|
|
||||||
PlayerObject.prototype.applyForSecurityJob = function() {
|
PlayerObject.prototype.applyForSecurityJob = function() {
|
||||||
//TODO If case for POlice departments
|
//TODO If case for POlice departments
|
||||||
this.applyForJob(CompanyPositions.SecurityGuard);
|
this.applyForJob(CompanyPositions.SecurityGuard);
|
||||||
@ -173,7 +181,19 @@ PlayerObject.prototype.applyForEmployeeJob = function() {
|
|||||||
if (this.isQualified(company, CompanyPositions.Employee)) {
|
if (this.isQualified(company, CompanyPositions.Employee)) {
|
||||||
this.companyName = company.companyName;
|
this.companyName = company.companyName;
|
||||||
this.companyPosition = CompanyPositions.Employee;
|
this.companyPosition = CompanyPositions.Employee;
|
||||||
dialogBoxCreate("Congratulations, you are now employed at ", this.companyName, "", "");
|
dialogBoxCreate("Congratulations, you are now employed at " + this.companyName);
|
||||||
|
Engine.loadLocationContent();
|
||||||
|
} else {
|
||||||
|
dialogBoxCreate("Unforunately, you do not qualify for this position");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
PlayerObject.prototype.applyForPartTimeEmployeeJob = function() {
|
||||||
|
var company = Companies[this.location]; //Company being applied to
|
||||||
|
if (this.isQualified(company, CompanyPositions.PartTimeEmployee)) {
|
||||||
|
this.companyName = company.companyName;
|
||||||
|
this.companyPosition = CompanyPositions.PartTimeEmployee;
|
||||||
|
dialogBoxCreate("Congratulations, you are now employed part-time at " + this.companyName);
|
||||||
Engine.loadLocationContent();
|
Engine.loadLocationContent();
|
||||||
} else {
|
} else {
|
||||||
dialogBoxCreate("Unforunately, you do not qualify for this position");
|
dialogBoxCreate("Unforunately, you do not qualify for this position");
|
||||||
@ -185,7 +205,19 @@ PlayerObject.prototype.applyForWaiterJob = function() {
|
|||||||
if (this.isQualified(company, CompanyPositions.Waiter)) {
|
if (this.isQualified(company, CompanyPositions.Waiter)) {
|
||||||
this.companyName = company.companyName;
|
this.companyName = company.companyName;
|
||||||
this.companyPosition = CompanyPositions.Waiter;
|
this.companyPosition = CompanyPositions.Waiter;
|
||||||
dialogBoxCreate("Congratulations, you are now employed as a waiter at ", this.companyName, "", "");
|
dialogBoxCreate("Congratulations, you are now employed as a waiter at " + this.companyName);
|
||||||
|
Engine.loadLocationContent();
|
||||||
|
} else {
|
||||||
|
dialogBoxCreate("Unforunately, you do not qualify for this position");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
PlayerObject.prototype.applyForPartTimeWaiterJob = function() {
|
||||||
|
var company = Companies[this.location]; //Company being applied to
|
||||||
|
if (this.isQualified(company, CompanyPositions.PartTimeWaiter)) {
|
||||||
|
this.companyName = company.companyName;
|
||||||
|
this.companyPosition = CompanyPositions.PartTimeWaiter;
|
||||||
|
dialogBoxCreate("Congratulations, you are now employed as a part-time waiter at " + this.companyName);
|
||||||
Engine.loadLocationContent();
|
Engine.loadLocationContent();
|
||||||
} else {
|
} else {
|
||||||
dialogBoxCreate("Unforunately, you do not qualify for this position");
|
dialogBoxCreate("Unforunately, you do not qualify for this position");
|
||||||
|
@ -10,21 +10,23 @@ CONSTANTS = {
|
|||||||
CorpFactionRepRequirement: 250000,
|
CorpFactionRepRequirement: 250000,
|
||||||
|
|
||||||
/* Base costs */
|
/* Base costs */
|
||||||
BaseCostFor1GBOfRam: 50000, //1 GB of RAM
|
BaseCostFor1GBOfRamHome: 100000,
|
||||||
|
BaseCostFor1GBOfRamServer: 75000, //1 GB of RAM
|
||||||
|
BaseCostFor1GBOfRamHacknetNode: 50000,
|
||||||
|
|
||||||
BaseCostForHacknetNode: 1000,
|
BaseCostForHacknetNode: 1000,
|
||||||
BaseCostForHacknetNodeCore: 1000000,
|
BaseCostForHacknetNodeCore: 1000000,
|
||||||
|
|
||||||
/* Hacknet Node constants */
|
/* Hacknet Node constants */
|
||||||
HacknetNodeMoneyGainPerLevel: 0.75,
|
HacknetNodeMoneyGainPerLevel: 1,
|
||||||
HacknetNodePurchaseNextMult: 1.35, //Multiplier when purchasing an additional hacknet node
|
HacknetNodePurchaseNextMult: 1.35, //Multiplier when purchasing an additional hacknet node
|
||||||
HacknetNodeUpgradeLevelMult: 1.06, //Multiplier for cost when upgrading level
|
HacknetNodeUpgradeLevelMult: 1.06, //Multiplier for cost when upgrading level
|
||||||
HacknetNodeUpgradeRamMult: 1.15, //Multiplier for cost when upgrading RAM
|
HacknetNodeUpgradeRamMult: 1.25, //Multiplier for cost when upgrading RAM
|
||||||
HacknetNodeUpgradeCoreMult: 1.45, //Multiplier for cost when buying another core
|
HacknetNodeUpgradeCoreMult: 1.45, //Multiplier for cost when buying another core
|
||||||
|
|
||||||
/* Augmentation */
|
/* Augmentation */
|
||||||
//NeuroFlux Governor cost multiplier as you level up
|
//NeuroFlux Governor cost multiplier as you level up
|
||||||
NeuroFluxGovernorLevelMult: 1.08,
|
NeuroFluxGovernorLevelMult: 1.09,
|
||||||
|
|
||||||
/* Script related things */
|
/* Script related things */
|
||||||
//Time (ms) it takes to run one operation in Netscript.
|
//Time (ms) it takes to run one operation in Netscript.
|
||||||
@ -71,6 +73,7 @@ CONSTANTS = {
|
|||||||
FactionWorkSecurity: "Faction Security Work",
|
FactionWorkSecurity: "Faction Security Work",
|
||||||
|
|
||||||
WorkTypeCompany: "Working for Company",
|
WorkTypeCompany: "Working for Company",
|
||||||
|
WorkTypeCompanyPartTime: "Working for Company part-time",
|
||||||
WorkTypeFaction: "Working for Faction",
|
WorkTypeFaction: "Working for Faction",
|
||||||
WorkTypeCreateProgram: "Working on Create a Program",
|
WorkTypeCreateProgram: "Working on Create a Program",
|
||||||
WorkTypeStudyClass: "Studying or Taking a class at university",
|
WorkTypeStudyClass: "Studying or Taking a class at university",
|
||||||
@ -82,12 +85,17 @@ CONSTANTS = {
|
|||||||
ClassAlgorithms: "taking an Algorithms course",
|
ClassAlgorithms: "taking an Algorithms course",
|
||||||
ClassManagement: "taking a Management course",
|
ClassManagement: "taking a Management course",
|
||||||
ClassLeadership: "taking a Leadership course",
|
ClassLeadership: "taking a Leadership course",
|
||||||
|
ClassGymStrength: "training your strength at a gym",
|
||||||
|
ClassGymDefense: "training your defense at a gym",
|
||||||
|
ClassGymDexterity: "training your dexterity at a gym",
|
||||||
|
ClassGymAgility: "training your agility at a gym",
|
||||||
|
|
||||||
ClassDataStructuresBaseCost: 1,
|
ClassDataStructuresBaseCost: 1,
|
||||||
ClassNetworksBaseCost: 5,
|
ClassNetworksBaseCost: 5,
|
||||||
ClassAlgorithmsBaseCost: 20,
|
ClassAlgorithmsBaseCost: 20,
|
||||||
ClassManagementBaseCost: 10,
|
ClassManagementBaseCost: 10,
|
||||||
ClassLeadershipBaseCost: 20,
|
ClassLeadershipBaseCost: 20,
|
||||||
|
ClassGymBaseCost: 15,
|
||||||
|
|
||||||
CrimeShoplift: "shoplift",
|
CrimeShoplift: "shoplift",
|
||||||
CrimeMug: "mug someone",
|
CrimeMug: "mug someone",
|
||||||
@ -298,8 +306,7 @@ CONSTANTS = {
|
|||||||
"Company/faction reputation<br>" +
|
"Company/faction reputation<br>" +
|
||||||
"Jobs and Faction memberships<br>" +
|
"Jobs and Faction memberships<br>" +
|
||||||
"Programs<br>" +
|
"Programs<br>" +
|
||||||
"TOR router<br>" +
|
"TOR router<br><br>" +
|
||||||
"Gym memberships<br><br>" +
|
|
||||||
"Here is everything you will KEEP when you install an Augmentation: <br><br>" +
|
"Here is everything you will KEEP when you install an Augmentation: <br><br>" +
|
||||||
"Every Augmentation you have installed<br>" +
|
"Every Augmentation you have installed<br>" +
|
||||||
"Scripts on your home computer<br>" +
|
"Scripts on your home computer<br>" +
|
||||||
|
@ -26,7 +26,7 @@ function commitHomicideCrime() {
|
|||||||
|
|
||||||
function commitGrandTheftAutoCrime() {
|
function commitGrandTheftAutoCrime() {
|
||||||
Player.crimeType = CONSTANTS.CrimeGrandTheftAuto;
|
Player.crimeType = CONSTANTS.CrimeGrandTheftAuto;
|
||||||
Player.startCrime(8, 8, 8, 40, 20, 150000, 80000); //$1875/2, .1 exp/s, .5 exp/s, .25 exp/s
|
Player.startCrime(0, 8, 8, 8, 40, 20, 150000, 80000); //$1875/2, .1 exp/s, .5 exp/s, .25 exp/s
|
||||||
}
|
}
|
||||||
|
|
||||||
function commitKidnapCrime() {
|
function commitKidnapCrime() {
|
||||||
|
@ -309,42 +309,42 @@ PlayerObject.prototype.checkForFactionInvitations = function() {
|
|||||||
//Chongqing
|
//Chongqing
|
||||||
var chongqingFac = Factions["Chongqing"];
|
var chongqingFac = Factions["Chongqing"];
|
||||||
if (chongqingFac.isBanned == false && chongqingFac.isMember == false &&
|
if (chongqingFac.isBanned == false && chongqingFac.isMember == false &&
|
||||||
this.money >= 20000000 && this.location == Locations.Chongqing) {
|
this.money >= 20000000 && this.city == Locations.Chongqing) {
|
||||||
invitedFactions.push(chongqingFac);
|
invitedFactions.push(chongqingFac);
|
||||||
}
|
}
|
||||||
|
|
||||||
//Sector-12
|
//Sector-12
|
||||||
var sector12Fac = Factions["Sector-12"];
|
var sector12Fac = Factions["Sector-12"];
|
||||||
if (sector12Fac.isBanned == false && sector12Fac.isMember == false &&
|
if (sector12Fac.isBanned == false && sector12Fac.isMember == false &&
|
||||||
this.money >= 15000000 && this.location == Locations.Sector12) {
|
this.money >= 15000000 && this.city == Locations.Sector12) {
|
||||||
invitedFactions.push(sector12Fac);
|
invitedFactions.push(sector12Fac);
|
||||||
}
|
}
|
||||||
|
|
||||||
//New Tokyo
|
//New Tokyo
|
||||||
var newtokyoFac = Factions["New Tokyo"];
|
var newtokyoFac = Factions["New Tokyo"];
|
||||||
if (newtokyoFac.isBanned == false && newtokyoFac.isMember == false &&
|
if (newtokyoFac.isBanned == false && newtokyoFac.isMember == false &&
|
||||||
this.money >= 20000000 && this.location == Locations.NewTokyo) {
|
this.money >= 20000000 && this.city == Locations.NewTokyo) {
|
||||||
invitedFactions.push(newtokyoFac);
|
invitedFactions.push(newtokyoFac);
|
||||||
}
|
}
|
||||||
|
|
||||||
//Aevum
|
//Aevum
|
||||||
var aevumFac = Factions["Aevum"];
|
var aevumFac = Factions["Aevum"];
|
||||||
if (aevumFac.isBanned == false && aevumFac.isMember == false &&
|
if (aevumFac.isBanned == false && aevumFac.isMember == false &&
|
||||||
this.money >= 40000000 && this.location == Locations.Aevum) {
|
this.money >= 40000000 && this.city == Locations.Aevum) {
|
||||||
invitedFactions.push(aevumFac);
|
invitedFactions.push(aevumFac);
|
||||||
}
|
}
|
||||||
|
|
||||||
//Ishima
|
//Ishima
|
||||||
var ishimaFac = Factions["Ishima"];
|
var ishimaFac = Factions["Ishima"];
|
||||||
if (ishimaFac.isBanned == false && ishimaFac.isMember == false &&
|
if (ishimaFac.isBanned == false && ishimaFac.isMember == false &&
|
||||||
this.money >= 30000000 && this.location == Locations.Ishima) {
|
this.money >= 30000000 && this.city == Locations.Ishima) {
|
||||||
invitedFactions.push(ishimaFac);
|
invitedFactions.push(ishimaFac);
|
||||||
}
|
}
|
||||||
|
|
||||||
//Volhaven
|
//Volhaven
|
||||||
var volhavenFac = Factions["Volhaven"];
|
var volhavenFac = Factions["Volhaven"];
|
||||||
if (volhavenFac.isBanned == false && volhavenFac.isMember == false &&
|
if (volhavenFac.isBanned == false && volhavenFac.isMember == false &&
|
||||||
this.money >= 50000000 && this.location == Locations.Volhaven) {
|
this.money >= 50000000 && this.city == Locations.Volhaven) {
|
||||||
invitedFactions.push(volhavenFac);
|
invitedFactions.push(volhavenFac);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -362,7 +362,7 @@ PlayerObject.prototype.checkForFactionInvitations = function() {
|
|||||||
var thedarkarmyFac = Factions["The Dark Army"];
|
var thedarkarmyFac = Factions["The Dark Army"];
|
||||||
if (thedarkarmyFac.isBanned == false && thedarkarmyFac.isMember == false &&
|
if (thedarkarmyFac.isBanned == false && thedarkarmyFac.isMember == false &&
|
||||||
this.hacking_skill >= 300 && this.strength >= 300 && this.defense >= 300 &&
|
this.hacking_skill >= 300 && this.strength >= 300 && this.defense >= 300 &&
|
||||||
this.dexterity >= 300 && this.agility >= 300 && this.location == Locations.Chongqing &&
|
this.dexterity >= 300 && this.agility >= 300 && this.city == Locations.Chongqing &&
|
||||||
this.numPeopleKilled >= 5 && this.karma <= -50 && this.companyName != Locations.Sector12CIA &&
|
this.numPeopleKilled >= 5 && this.karma <= -50 && this.companyName != Locations.Sector12CIA &&
|
||||||
this.companyName != Locations.Sector12NSA) {
|
this.companyName != Locations.Sector12NSA) {
|
||||||
invitedFactions.push(thedarkarmyFac);
|
invitedFactions.push(thedarkarmyFac);
|
||||||
@ -373,7 +373,7 @@ PlayerObject.prototype.checkForFactionInvitations = function() {
|
|||||||
if (thesyndicateFac.isBanned == false && thesyndicateFac.isMember == false &&
|
if (thesyndicateFac.isBanned == false && thesyndicateFac.isMember == false &&
|
||||||
this.hacking_skill >= 200 && this.strength >= 200 && this.defense >= 200 &&
|
this.hacking_skill >= 200 && this.strength >= 200 && this.defense >= 200 &&
|
||||||
this.dexterity >= 200 && this.agility >= 200 &&
|
this.dexterity >= 200 && this.agility >= 200 &&
|
||||||
(this.location == Locations.Aevum || this.location == Locations.Sector12) &&
|
(this.city == Locations.Aevum || this.city == Locations.Sector12) &&
|
||||||
this.money >= 10000000 && this.karma <= -100 &&
|
this.money >= 10000000 && this.karma <= -100 &&
|
||||||
this.companyName != Locations.Sector12CIA && this.companyName != Locations.Sector12NSA) {
|
this.companyName != Locations.Sector12CIA && this.companyName != Locations.Sector12NSA) {
|
||||||
invitedFactions.push(thesyndicateFac);
|
invitedFactions.push(thesyndicateFac);
|
||||||
@ -406,11 +406,13 @@ PlayerObject.prototype.checkForFactionInvitations = function() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Tian Di Hui
|
//Tian Di Hui
|
||||||
|
console.log("here");
|
||||||
var tiandihuiFac = Factions["Tian Di Hui"];
|
var tiandihuiFac = Factions["Tian Di Hui"];
|
||||||
if (tiandihuiFac.isBanned == false && tiandihuiFac.isMember == false &&
|
if (tiandihuiFac.isBanned == false && tiandihuiFac.isMember == false &&
|
||||||
this.money >= 1000000 && this.hacking_skill >= 50 &&
|
this.money >= 1000000 && this.hacking_skill >= 50 &&
|
||||||
(this.location == Locations.Chongqing || this.location == Locations.NewTokyo ||
|
(this.city == Locations.Chongqing || this.city == Locations.NewTokyo ||
|
||||||
this.location == Locations.Ishima)) {
|
this.city == Locations.Ishima)) {
|
||||||
|
console.log("invited");
|
||||||
invitedFactions.push(tiandihuiFac);
|
invitedFactions.push(tiandihuiFac);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -748,7 +750,7 @@ displayFactionAugmentations = function(factionName) {
|
|||||||
aElem.setAttribute("class", "a-link-button-inactive");
|
aElem.setAttribute("class", "a-link-button-inactive");
|
||||||
pElem.innerHTML = "ALREADY OWNED";
|
pElem.innerHTML = "ALREADY OWNED";
|
||||||
} else if (faction.playerReputation >= req) {
|
} else if (faction.playerReputation >= req) {
|
||||||
aElem.setAttribute("class", "a-link-button");
|
aElem.setAttribute("class", "a-link-button tooltip");
|
||||||
pElem.innerHTML = "UNLOCKED - $" + formatNumber(aug.baseCost * faction.augmentationPriceMult, 2);
|
pElem.innerHTML = "UNLOCKED - $" + formatNumber(aug.baseCost * faction.augmentationPriceMult, 2);
|
||||||
} else {
|
} else {
|
||||||
aElem.setAttribute("class", "a-link-button-inactive");
|
aElem.setAttribute("class", "a-link-button-inactive");
|
||||||
@ -762,6 +764,8 @@ displayFactionAugmentations = function(factionName) {
|
|||||||
aElem.innerHTML += " - Level " + (aug.level + 1);
|
aElem.innerHTML += " - Level " + (aug.level + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
aElem.innerHTML += "<span class='tooltiptext'>" + aug.info + " </span>";
|
||||||
|
|
||||||
aElem.addEventListener("click", function() {
|
aElem.addEventListener("click", function() {
|
||||||
purchaseAugmentationBoxCreate(aug, faction);
|
purchaseAugmentationBoxCreate(aug, faction);
|
||||||
});
|
});
|
||||||
|
@ -2,17 +2,17 @@
|
|||||||
//of each faction
|
//of each faction
|
||||||
FactionInfo = {
|
FactionInfo = {
|
||||||
//Endgame
|
//Endgame
|
||||||
IlluminatiInfo: "Humanity never changes. No matter how civilized society becomes, it will eventually fall back\n" +
|
IlluminatiInfo: "Humanity never changes. No matter how civilized society becomes, it will eventually fall back " +
|
||||||
"into chaos. And out of this chaos, we will lead them to order.\n" +
|
"into chaos. And out of this chaos, we will lead them to order. <br><br>" +
|
||||||
"We are the Invisible Hand. We are forever.",
|
"We are the Invisible Hand. We are forever.",
|
||||||
|
|
||||||
DaedalusInfo: "If all of human \n" +
|
DaedalusInfo: "If all of human " +
|
||||||
"history is but a single lesson, it is that the individual may be remembered, but the organization \n" +
|
"history is but a single lesson, it is that the individual may be remembered, but the organization " +
|
||||||
"persists and thrives. A single artist, a single general, a single hero or a single villain may all die,\n" +
|
"persists and thrives. A single artist, a single general, a single hero or a single villain may all die, " +
|
||||||
"but it is impossible to kill a people, a nation, an idea -- except when that idea has grown weak and is \n" +
|
"but it is impossible to kill a people, a nation, an idea -- except when that idea has grown weak and is " +
|
||||||
"overpowered by one that is stronger. -- The Doctrine of the Mighty\n\n" +
|
"overpowered by one that is stronger. -- The Doctrine of the Mighty<br><br>" +
|
||||||
"Surrender yourself. Give up your empty individuality to become part of something great, something eternal.\n" +
|
"Surrender yourself. Give up your empty individuality to become part of something great, something eternal. " +
|
||||||
"Become a slave. Submit your mind, body, and soul. Only then can you set yourself free.\n\n" +
|
"Become a slave. Submit your mind, body, and soul. Only then can you set yourself free.<br><br> " +
|
||||||
"Only then can you discover immortality.",
|
"Only then can you discover immortality.",
|
||||||
|
|
||||||
CovenantInfo: "Yesterday we obeyed kings and bent our necks to emperors. Today we kneel only to truth.",
|
CovenantInfo: "Yesterday we obeyed kings and bent our necks to emperors. Today we kneel only to truth.",
|
||||||
@ -25,7 +25,7 @@ FactionInfo = {
|
|||||||
MegaCorpInfo: "MegaCorp does things that others don't. We imagine. We create. We invent. We build things that\n" +
|
MegaCorpInfo: "MegaCorp does things that others don't. We imagine. We create. We invent. We build things that\n" +
|
||||||
"others have never even dreamed of. Our work fills the world's needs for food, water, power, and\n" +
|
"others have never even dreamed of. Our work fills the world's needs for food, water, power, and\n" +
|
||||||
"transporation on an unprecendented scale, in ways that no other company can.\n\n" +
|
"transporation on an unprecendented scale, in ways that no other company can.\n\n" +
|
||||||
"In its labs and factories and on the ground with customers, MegaCorp is ushering in a new era for the world.",
|
"In our labs and factories and on the ground with customers, MegaCorp is ushering in a new era for the world.",
|
||||||
|
|
||||||
BachmanAndAssociatesInfo: "TODO",
|
BachmanAndAssociatesInfo: "TODO",
|
||||||
|
|
||||||
@ -115,7 +115,7 @@ FactionInfo = {
|
|||||||
|
|
||||||
//Earlygame factions - factions the player will prestige with early on that don't
|
//Earlygame factions - factions the player will prestige with early on that don't
|
||||||
//belong in other categories
|
//belong in other categories
|
||||||
NetburnersInfo: "~~HACKNET BURNERS~~",
|
NetburnersInfo: "~~//*><H4CK|\|3T 8URN3R5**>?>\\~~",
|
||||||
TianDiHuiInfo: "Obey Heaven and Work Righteousness",
|
TianDiHuiInfo: "Obey Heaven and Work Righteousness",
|
||||||
|
|
||||||
CyberSecInfo: "The Internet is the first thing that humanity has built that humanity doesn’t understand,\n" +
|
CyberSecInfo: "The Internet is the first thing that humanity has built that humanity doesn’t understand,\n" +
|
||||||
|
@ -16,13 +16,15 @@ HacknetNode.prototype.updateMoneyGainRate = function() {
|
|||||||
//How much extra $/s is gained per level
|
//How much extra $/s is gained per level
|
||||||
var gainPerLevel = CONSTANTS.HacknetNodeMoneyGainPerLevel;
|
var gainPerLevel = CONSTANTS.HacknetNodeMoneyGainPerLevel;
|
||||||
|
|
||||||
//Each CPU core doubles the speed. Every 1GB of ram adds 10% increase
|
//Each CPU core doubles the speed. Every 1GB of ram adds 20% increase
|
||||||
this.moneyGainRatePerSecond = (this.level * gainPerLevel) *
|
this.moneyGainRatePerSecond = (this.level * gainPerLevel) *
|
||||||
Math.pow(1.1, this.ram-1) *
|
Math.pow(1.2, this.ram-1) *
|
||||||
this.numCores * Player.hacknet_node_money_mult;
|
this.numCores * Player.hacknet_node_money_mult;
|
||||||
if (isNaN(this.moneyGainRatePerSecond)) {
|
if (isNaN(this.moneyGainRatePerSecond)) {
|
||||||
throw new Error("Money gain rate calculated for Hacknet Node is NaN");
|
throw new Error("Money gain rate calculated for Hacknet Node is NaN");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
updateTotalHacknetProduction();
|
||||||
}
|
}
|
||||||
|
|
||||||
HacknetNode.prototype.calculateLevelUpgradeCost = function() {
|
HacknetNode.prototype.calculateLevelUpgradeCost = function() {
|
||||||
@ -46,7 +48,7 @@ HacknetNode.prototype.calculateRamUpgradeCost = function() {
|
|||||||
//Calculate cost
|
//Calculate cost
|
||||||
//Base cost of RAM is 50k per 1GB...but lets have this increase by 10% for every time
|
//Base cost of RAM is 50k per 1GB...but lets have this increase by 10% for every time
|
||||||
//the RAM has been upgraded
|
//the RAM has been upgraded
|
||||||
var cost = this.ram * CONSTANTS.BaseCostFor1GBOfRam;
|
var cost = this.ram * CONSTANTS.BaseCostFor1GBOfRamHacknetNode;
|
||||||
var mult = Math.pow(CONSTANTS.HacknetNodeUpgradeRamMult, numUpgrades);
|
var mult = Math.pow(CONSTANTS.HacknetNodeUpgradeRamMult, numUpgrades);
|
||||||
return cost * mult * Player.hacknet_node_ram_cost_mult;
|
return cost * mult * Player.hacknet_node_ram_cost_mult;
|
||||||
}
|
}
|
||||||
@ -116,6 +118,16 @@ purchaseHacknet = function() {
|
|||||||
Player.hacknetNodes.push(node);
|
Player.hacknetNodes.push(node);
|
||||||
|
|
||||||
displayHacknetNodesContent();
|
displayHacknetNodesContent();
|
||||||
|
updateTotalHacknetProduction();
|
||||||
|
}
|
||||||
|
|
||||||
|
//Calculates the total production from all HacknetNodes
|
||||||
|
updateTotalHacknetProduction = function() {
|
||||||
|
var total = 0;
|
||||||
|
for (var i = 0; i < Player.hacknetNodes.length; ++i) {
|
||||||
|
total += Player.hacknetNodes[i].moneyGainRatePerSecond;
|
||||||
|
}
|
||||||
|
Player.totalHacknetNodeProduction = total;
|
||||||
}
|
}
|
||||||
|
|
||||||
getCostOfNextHacknetNode = function() {
|
getCostOfNextHacknetNode = function() {
|
||||||
@ -129,9 +141,6 @@ getCostOfNextHacknetNode = function() {
|
|||||||
displayHacknetNodesContent = function() {
|
displayHacknetNodesContent = function() {
|
||||||
//Update Hacknet Nodes button
|
//Update Hacknet Nodes button
|
||||||
var newPurchaseButton = clearEventListeners("hacknet-nodes-purchase-button");
|
var newPurchaseButton = clearEventListeners("hacknet-nodes-purchase-button");
|
||||||
//var purchaseButton = document.getElementById("hacknet-nodes-purchase-button");
|
|
||||||
//var newPurchaseButton = purchaseButton.cloneNode(true);
|
|
||||||
//purchaseButton.parentNode.replaceChild(newPurchaseButton, purchaseButton);
|
|
||||||
|
|
||||||
newPurchaseButton.addEventListener("click", function() {
|
newPurchaseButton.addEventListener("click", function() {
|
||||||
purchaseHacknet();
|
purchaseHacknet();
|
||||||
@ -164,7 +173,9 @@ updateHacknetNodesContent = function() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Update player's money
|
//Update player's money
|
||||||
document.getElementById("hacknet-nodes-money").innerHTML = "Money: $" + formatNumber(Player.money, 2);
|
var moneyElem = document.getElementById("hacknet-nodes-money");
|
||||||
|
moneyElem.innerHTML = "Money: $" + formatNumber(Player.money, 2) + "<br>" +
|
||||||
|
"Total production from all Hacknet Nodes: $" + formatNumber(Player.totalHacknetNodeProduction, 2);
|
||||||
|
|
||||||
//Update information in each owned hacknet node
|
//Update information in each owned hacknet node
|
||||||
for (var i = 0; i < Player.hacknetNodes.length; ++i) {
|
for (var i = 0; i < Player.hacknetNodes.length; ++i) {
|
||||||
|
361
src/Location.js
361
src/Location.js
@ -87,71 +87,75 @@ displayLocationContent = function() {
|
|||||||
console.log("displayLocationContent() called with location " + Player.location)
|
console.log("displayLocationContent() called with location " + Player.location)
|
||||||
}
|
}
|
||||||
|
|
||||||
var returnToWorld = document.getElementById("location-return-to-world-button");
|
var returnToWorld = document.getElementById("location-return-to-world-button");
|
||||||
|
|
||||||
var locationName = document.getElementById("location-name");
|
var locationName = document.getElementById("location-name");
|
||||||
|
|
||||||
var locationInfo = document.getElementById("location-info");
|
var locationInfo = document.getElementById("location-info");
|
||||||
|
|
||||||
var softwareJob = document.getElementById("location-software-job");
|
var softwareJob = document.getElementById("location-software-job");
|
||||||
var itJob = document.getElementById("location-it-job");
|
var softwareConsultantJob = document.getElementById("location-software-consultant-job")
|
||||||
var securityEngineerJob = document.getElementById("location-security-engineer-job");
|
var itJob = document.getElementById("location-it-job");
|
||||||
var networkEngineerJob = document.getElementById("location-network-engineer-job");
|
var securityEngineerJob = document.getElementById("location-security-engineer-job");
|
||||||
var businessJob = document.getElementById("location-business-job");
|
var networkEngineerJob = document.getElementById("location-network-engineer-job");
|
||||||
var securityJob = document.getElementById("location-security-job");
|
var businessJob = document.getElementById("location-business-job");
|
||||||
var agentJob = document.getElementById("location-agent-job");
|
var businessConsultantJob = document.getElementById("location-business-consultant-job");
|
||||||
var employeeJob = document.getElementById("location-employee-job");
|
var securityJob = document.getElementById("location-security-job");
|
||||||
var waiterJob = document.getElementById("location-waiter-job");
|
var agentJob = document.getElementById("location-agent-job");
|
||||||
|
var employeeJob = document.getElementById("location-employee-job");
|
||||||
var work = document.getElementById("location-work");
|
var employeePartTimeJob = document.getElementById("location-parttime-employee-job");
|
||||||
|
var waiterJob = document.getElementById("location-waiter-job");
|
||||||
var jobTitle = document.getElementById("location-job-title");
|
var waiterPartTimeJob = document.getElementById("location-parttime-waiter-job");
|
||||||
var jobReputation = document.getElementById("location-job-reputation");
|
|
||||||
|
|
||||||
var gymTrainStr = document.getElementById("location-gym-train-str");
|
|
||||||
var gymTrainDef = document.getElementById("location-gym-train-def");
|
|
||||||
var gymTrainDex = document.getElementById("location-gym-train-dex");
|
|
||||||
var gymTrainAgi = document.getElementById("location-gym-train-agi");
|
|
||||||
|
|
||||||
var studyComputerScience= document.getElementById("location-study-computer-science");
|
var work = clearEventListeners("location-work");
|
||||||
var classDataStructures = document.getElementById("location-data-structures-class");
|
|
||||||
var classNetworks = document.getElementById("location-networks-class");
|
var jobTitle = document.getElementById("location-job-title");
|
||||||
var classAlgorithms = document.getElementById("location-algorithms-class");
|
var jobReputation = document.getElementById("location-job-reputation");
|
||||||
var classManagement = document.getElementById("location-management-class");
|
|
||||||
var classLeadership = document.getElementById("location-leadership-class");
|
var gymTrainStr = document.getElementById("location-gym-train-str");
|
||||||
|
var gymTrainDef = document.getElementById("location-gym-train-def");
|
||||||
var purchase1gb = document.getElementById("location-purchase-1gb");
|
var gymTrainDex = document.getElementById("location-gym-train-dex");
|
||||||
var purchase2gb = document.getElementById("location-purchase-2gb");
|
var gymTrainAgi = document.getElementById("location-gym-train-agi");
|
||||||
var purchase4gb = document.getElementById("location-purchase-4gb");
|
|
||||||
var purchase8gb = document.getElementById("location-purchase-8gb");
|
var studyComputerScience = document.getElementById("location-study-computer-science");
|
||||||
var purchase16gb = document.getElementById("location-purchase-16gb");
|
var classDataStructures = document.getElementById("location-data-structures-class");
|
||||||
var purchase32gb = document.getElementById("location-purchase-32gb");
|
var classNetworks = document.getElementById("location-networks-class");
|
||||||
var purchase64gb = document.getElementById("location-purchase-64gb");
|
var classAlgorithms = document.getElementById("location-algorithms-class");
|
||||||
var purchase128gb = document.getElementById("location-purchase-128gb");
|
var classManagement = document.getElementById("location-management-class");
|
||||||
var purchase256gb = document.getElementById("location-purchase-256gb");
|
var classLeadership = document.getElementById("location-leadership-class");
|
||||||
var purchase512gb = document.getElementById("location-purchase-512gb");
|
|
||||||
var purchase1tb = document.getElementById("location-purchase-1tb");
|
var purchase1gb = document.getElementById("location-purchase-1gb");
|
||||||
var purchaseTor = document.getElementById("location-purchase-tor");
|
var purchase2gb = document.getElementById("location-purchase-2gb");
|
||||||
var purchaseHomeRam = document.getElementById("location-purchase-home-ram");
|
var purchase4gb = document.getElementById("location-purchase-4gb");
|
||||||
|
var purchase8gb = document.getElementById("location-purchase-8gb");
|
||||||
var travelAgencyText = document.getElementById("location-travel-agency-text");
|
var purchase16gb = document.getElementById("location-purchase-16gb");
|
||||||
var travelToAevum = document.getElementById("location-travel-to-aevum");
|
var purchase32gb = document.getElementById("location-purchase-32gb");
|
||||||
var travelToChongqing = document.getElementById("location-travel-to-chongqing");
|
var purchase64gb = document.getElementById("location-purchase-64gb");
|
||||||
var travelToSector12 = document.getElementById("location-travel-to-sector12");
|
var purchase128gb = document.getElementById("location-purchase-128gb");
|
||||||
var travelToNewTokyo = document.getElementById("location-travel-to-newtokyo");
|
var purchase256gb = document.getElementById("location-purchase-256gb");
|
||||||
var travelToIshima = document.getElementById("location-travel-to-ishima");
|
var purchase512gb = document.getElementById("location-purchase-512gb");
|
||||||
var travelToVolhaven = document.getElementById("location-travel-to-volhaven");
|
var purchase1tb = document.getElementById("location-purchase-1tb");
|
||||||
|
var purchaseTor = document.getElementById("location-purchase-tor");
|
||||||
var slumsDescText = document.getElementById("location-slums-description");
|
var purchaseHomeRam = document.getElementById("location-purchase-home-ram");
|
||||||
var slumsShoplift = document.getElementById("location-slums-shoplift");
|
|
||||||
var slumsMug = document.getElementById("location-slums-mug");
|
var travelAgencyText = document.getElementById("location-travel-agency-text");
|
||||||
var slumsDealDrugs = document.getElementById("location-slums-deal-drugs");
|
var travelToAevum = document.getElementById("location-travel-to-aevum");
|
||||||
var slumsTrafficArms = document.getElementById("location-slums-traffic-arms");
|
var travelToChongqing = document.getElementById("location-travel-to-chongqing");
|
||||||
var slumsHomicide = document.getElementById("location-slums-homicide");
|
var travelToSector12 = document.getElementById("location-travel-to-sector12");
|
||||||
var slumsGta = document.getElementById("location-slums-gta");
|
var travelToNewTokyo = document.getElementById("location-travel-to-newtokyo");
|
||||||
var slumsKidnap = document.getElementById("location-slums-kidnap");
|
var travelToIshima = document.getElementById("location-travel-to-ishima");
|
||||||
var slumsAssassinate = document.getElementById("location-slums-assassinate");
|
var travelToVolhaven = document.getElementById("location-travel-to-volhaven");
|
||||||
var slumsHeist = document.getElementById("location-slums-heist");
|
|
||||||
|
var slumsDescText = document.getElementById("location-slums-description");
|
||||||
|
var slumsShoplift = document.getElementById("location-slums-shoplift");
|
||||||
|
var slumsMug = document.getElementById("location-slums-mug");
|
||||||
|
var slumsDealDrugs = document.getElementById("location-slums-deal-drugs");
|
||||||
|
var slumsTrafficArms = document.getElementById("location-slums-traffic-arms");
|
||||||
|
var slumsHomicide = document.getElementById("location-slums-homicide");
|
||||||
|
var slumsGta = document.getElementById("location-slums-gta");
|
||||||
|
var slumsKidnap = document.getElementById("location-slums-kidnap");
|
||||||
|
var slumsAssassinate = document.getElementById("location-slums-assassinate");
|
||||||
|
var slumsHeist = document.getElementById("location-slums-heist");
|
||||||
|
|
||||||
var loc = Player.location;
|
var loc = Player.location;
|
||||||
|
|
||||||
@ -165,14 +169,18 @@ displayLocationContent = function() {
|
|||||||
locationInfo.style.display = "block";
|
locationInfo.style.display = "block";
|
||||||
|
|
||||||
softwareJob.style.display = "none";
|
softwareJob.style.display = "none";
|
||||||
|
softwareConsultantJob.style.display = "none";
|
||||||
itJob.style.display = "none";
|
itJob.style.display = "none";
|
||||||
securityEngineerJob.style.display = "none";
|
securityEngineerJob.style.display = "none";
|
||||||
networkEngineerJob.style.display = "none";
|
networkEngineerJob.style.display = "none";
|
||||||
businessJob.style.display = "none";
|
businessJob.style.display = "none";
|
||||||
|
businessConsultantJob.style.display = "none";
|
||||||
securityJob.style.display = "none";
|
securityJob.style.display = "none";
|
||||||
agentJob.style.display = "none";
|
agentJob.style.display = "none";
|
||||||
employeeJob.style.display = "none";
|
employeeJob.style.display = "none";
|
||||||
|
employeePartTimeJob.style.display = "none";
|
||||||
waiterJob.style.display = "none";
|
waiterJob.style.display = "none";
|
||||||
|
waiterPartTimeJob.style.display = "none";
|
||||||
|
|
||||||
softwareJob.innerHTML = "Apply for Software Job";
|
softwareJob.innerHTML = "Apply for Software Job";
|
||||||
itJob.innerHTML = "Apply for IT Job";
|
itJob.innerHTML = "Apply for IT Job";
|
||||||
@ -242,16 +250,22 @@ displayLocationContent = function() {
|
|||||||
jobReputation.innerHTML = "Company reputation: " + (company.playerReputation.toFixed(4)).toLocaleString();
|
jobReputation.innerHTML = "Company reputation: " + (company.playerReputation.toFixed(4)).toLocaleString();
|
||||||
work.style.display = "block";
|
work.style.display = "block";
|
||||||
|
|
||||||
|
var currPos = Player.companyPosition;
|
||||||
|
|
||||||
work.addEventListener("click", function() {
|
work.addEventListener("click", function() {
|
||||||
Player.startWork();
|
if (currPos.isPartTimeJob()) {
|
||||||
|
Player.startWorkPartTime();
|
||||||
|
} else {
|
||||||
|
Player.startWork();
|
||||||
|
}
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
var currPos = Player.companyPosition;
|
|
||||||
|
|
||||||
//Change the text for the corresponding position from "Apply for X Job" to "Apply for promotion"
|
//Change the text for the corresponding position from "Apply for X Job" to "Apply for promotion"
|
||||||
if (currPos.isSoftwareJob()) {
|
if (currPos.isSoftwareJob()) {
|
||||||
softwareJob.innerHTML = "Apply for a promotion (Software)";
|
softwareJob.innerHTML = "Apply for a promotion (Software)";
|
||||||
|
} else if (currPos.isSoftwareConsultantJob()) {
|
||||||
|
softwareConsultantJob.innerHTML = "Apply for a promotion (Software Consultant)";
|
||||||
} else if (currPos.isITJob()) {
|
} else if (currPos.isITJob()) {
|
||||||
itJob.innerHTML = "Apply for a promotion (IT)";
|
itJob.innerHTML = "Apply for a promotion (IT)";
|
||||||
} else if (currPos.isSecurityEngineerJob()) {
|
} else if (currPos.isSecurityEngineerJob()) {
|
||||||
@ -260,6 +274,8 @@ displayLocationContent = function() {
|
|||||||
networkEngineerJob.innerHTML = "Apply for a promotion (Network Engineer)";
|
networkEngineerJob.innerHTML = "Apply for a promotion (Network Engineer)";
|
||||||
} else if (currPos.isBusinessJob()) {
|
} else if (currPos.isBusinessJob()) {
|
||||||
businessJob.innerHTML = "Apply for a promotion (Business)";
|
businessJob.innerHTML = "Apply for a promotion (Business)";
|
||||||
|
} else if (currPos.isBusinessConsultantJob()) {
|
||||||
|
businessConsultantJob.innerHTML = "Apply for a promotion (Business Consultant)";
|
||||||
} else if (currPos.isSecurityJob()) {
|
} else if (currPos.isSecurityJob()) {
|
||||||
securityJob.innerHTML = "Apply for a promotion (Security)";
|
securityJob.innerHTML = "Apply for a promotion (Security)";
|
||||||
} else if (currPos.isAgentJob()) {
|
} else if (currPos.isAgentJob()) {
|
||||||
@ -281,8 +297,7 @@ displayLocationContent = function() {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case Locations.AevumSummitUniveristy:
|
case Locations.AevumSummitUniveristy:
|
||||||
var costMult = 3;
|
var costMult = 4, expMult = 3;
|
||||||
var expMult = 2;
|
|
||||||
displayUniversityLocationContent(costMult);
|
displayUniversityLocationContent(costMult);
|
||||||
setUniversityLocationButtons(costMult, expMult);
|
setUniversityLocationButtons(costMult, expMult);
|
||||||
break;
|
break;
|
||||||
@ -359,6 +374,7 @@ displayLocationContent = function() {
|
|||||||
locationInfo.innerHTML = Companies[loc].info;
|
locationInfo.innerHTML = Companies[loc].info;
|
||||||
|
|
||||||
softwareJob.style.display = "block";
|
softwareJob.style.display = "block";
|
||||||
|
softwareConsultantJob.style.display = "block";
|
||||||
itJob.style.display = "block";
|
itJob.style.display = "block";
|
||||||
securityEngineerJob.style.display = "block";
|
securityEngineerJob.style.display = "block";
|
||||||
networkEngineerJob.style.display = "block";
|
networkEngineerJob.style.display = "block";
|
||||||
@ -369,6 +385,7 @@ displayLocationContent = function() {
|
|||||||
locationInfo.innerHTML = Companies[loc].info;
|
locationInfo.innerHTML = Companies[loc].info;
|
||||||
|
|
||||||
softwareJob.style.display = "block";
|
softwareJob.style.display = "block";
|
||||||
|
softwareConsultantJob.style.display = "block";
|
||||||
itJob.style.display = "block";
|
itJob.style.display = "block";
|
||||||
securityEngineerJob.style.display = "block";
|
securityEngineerJob.style.display = "block";
|
||||||
networkEngineerJob.style.display = "block";
|
networkEngineerJob.style.display = "block";
|
||||||
@ -394,6 +411,7 @@ displayLocationContent = function() {
|
|||||||
locationInfo.innerHTML = Companies[loc].info;
|
locationInfo.innerHTML = Companies[loc].info;
|
||||||
|
|
||||||
softwareJob.style.display = "block";
|
softwareJob.style.display = "block";
|
||||||
|
softwareConsultantJob.style.display = "block";
|
||||||
itJob.style.display = "block";
|
itJob.style.display = "block";
|
||||||
securityEngineerJob.style.display = "block";
|
securityEngineerJob.style.display = "block";
|
||||||
networkEngineerJob.style.display = "block";
|
networkEngineerJob.style.display = "block";
|
||||||
@ -406,18 +424,16 @@ displayLocationContent = function() {
|
|||||||
purchaseHomeRam.style.display = "block";
|
purchaseHomeRam.style.display = "block";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Locations.AevumCrushFitnessGym:
|
case Locations.AevumCrushFitnessGym:
|
||||||
gymTrainStr.style.display = "block";
|
var costMult = 2, expMult = 1.5;
|
||||||
gymTrainDef.style.display = "block";
|
displayGymLocationContent(costMult);
|
||||||
gymTrainDex.style.display = "block";
|
setGymLocationButtons(costMult, expMult);
|
||||||
gymTrainAgi.style.display = "block";
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Locations.AevumSnapFitnessGym:
|
case Locations.AevumSnapFitnessGym:
|
||||||
gymTrainStr.style.display = "block";
|
var costMult = 6, expMult = 4;
|
||||||
gymTrainDef.style.display = "block";
|
displayGymLocationContent(costMult);
|
||||||
gymTrainDex.style.display = "block";
|
setGymLocationButtons(costMult, expMult);
|
||||||
gymTrainAgi.style.display = "block";
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Locations.ChongqingTravelAgency:
|
case Locations.ChongqingTravelAgency:
|
||||||
@ -462,8 +478,7 @@ displayLocationContent = function() {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case Locations.Sector12RothmanUniversity:
|
case Locations.Sector12RothmanUniversity:
|
||||||
var costMult = 2;
|
var costMult = 3, expMult = 2;
|
||||||
var expMult = 1;
|
|
||||||
displayUniversityLocationContent(costMult);
|
displayUniversityLocationContent(costMult);
|
||||||
setUniversityLocationButtons(costMult, expMult);
|
setUniversityLocationButtons(costMult, expMult);
|
||||||
break;
|
break;
|
||||||
@ -505,6 +520,7 @@ displayLocationContent = function() {
|
|||||||
locationInfo.innerHTML = Companies[loc].info;
|
locationInfo.innerHTML = Companies[loc].info;
|
||||||
|
|
||||||
softwareJob.style.display = "block";
|
softwareJob.style.display = "block";
|
||||||
|
softwareConsultantJob.style.display = "block";
|
||||||
itJob.style.display = "block";
|
itJob.style.display = "block";
|
||||||
securityEngineerJob.style.display = "block";
|
securityEngineerJob.style.display = "block";
|
||||||
networkEngineerJob.style.display = "block";
|
networkEngineerJob.style.display = "block";
|
||||||
@ -515,6 +531,7 @@ displayLocationContent = function() {
|
|||||||
locationInfo.innerHTML = Companies[loc].info;
|
locationInfo.innerHTML = Companies[loc].info;
|
||||||
|
|
||||||
softwareJob.style.display = "block";
|
softwareJob.style.display = "block";
|
||||||
|
softwareConsultantJob.style.display = "block";
|
||||||
itJob.style.display = "block";
|
itJob.style.display = "block";
|
||||||
securityEngineerJob.style.display = "block";
|
securityEngineerJob.style.display = "block";
|
||||||
networkEngineerJob.style.display = "block";
|
networkEngineerJob.style.display = "block";
|
||||||
@ -558,6 +575,7 @@ displayLocationContent = function() {
|
|||||||
locationInfo.innerHTML = Companies[loc].info;
|
locationInfo.innerHTML = Companies[loc].info;
|
||||||
|
|
||||||
softwareJob.style.display = "block";
|
softwareJob.style.display = "block";
|
||||||
|
softwareConsultantJob.style.display = "block";
|
||||||
businessJob.style.display = "block";
|
businessJob.style.display = "block";
|
||||||
purchase1gb.style.display = "block";
|
purchase1gb.style.display = "block";
|
||||||
purchase2gb.style.display = "block";
|
purchase2gb.style.display = "block";
|
||||||
@ -570,6 +588,7 @@ displayLocationContent = function() {
|
|||||||
locationInfo.innerHTML = Companies[loc].info;
|
locationInfo.innerHTML = Companies[loc].info;
|
||||||
|
|
||||||
softwareJob.style.display = "block";
|
softwareJob.style.display = "block";
|
||||||
|
softwareConsultantJob.style.display = "block";
|
||||||
itJob.style.display = "block";
|
itJob.style.display = "block";
|
||||||
securityEngineerJob.style.display = "block";
|
securityEngineerJob.style.display = "block";
|
||||||
networkEngineerJob.style.display = "block";
|
networkEngineerJob.style.display = "block";
|
||||||
@ -581,26 +600,26 @@ displayLocationContent = function() {
|
|||||||
locationInfo.innerHTML = Companies[loc].info;
|
locationInfo.innerHTML = Companies[loc].info;
|
||||||
|
|
||||||
employeeJob.style.display = "block";
|
employeeJob.style.display = "block";
|
||||||
|
employeePartTimeJob.style.display = "block";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Locations.Sector12JoesGuns:
|
case Locations.Sector12JoesGuns:
|
||||||
locationInfo.innerHTML = Companies[loc].info;
|
locationInfo.innerHTML = Companies[loc].info;
|
||||||
|
|
||||||
employeeJob.style.display = "block";
|
employeeJob.style.display = "block";
|
||||||
|
employeePartTimeJob.style.display = "block";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Locations.Sector12IronGym:
|
case Locations.Sector12IronGym:
|
||||||
gymTrainStr.style.display = "block";
|
var costMult = 1, expMult = 1;
|
||||||
gymTrainDef.style.display = "block";
|
displayGymLocationContent(costMult);
|
||||||
gymTrainDex.style.display = "block";
|
setGymLocationButtons(costMult, expMult);
|
||||||
gymTrainAgi.style.display = "block";
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Locations.Sector12PowerhouseGym:
|
case Locations.Sector12PowerhouseGym:
|
||||||
gymTrainStr.style.display = "block";
|
var costMult = 10, expMult = 7.5;
|
||||||
gymTrainDef.style.display = "block";
|
displayGymLocationContent(costMult);
|
||||||
gymTrainDex.style.display = "block";
|
setGymLocationButtons(costMult, expMult);
|
||||||
gymTrainAgi.style.display = "block";
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Locations.NewTokyoTravelAgency:
|
case Locations.NewTokyoTravelAgency:
|
||||||
@ -616,6 +635,7 @@ displayLocationContent = function() {
|
|||||||
locationInfo.innerHTML = Companies[loc].info;
|
locationInfo.innerHTML = Companies[loc].info;
|
||||||
|
|
||||||
softwareJob.style.display = "block";
|
softwareJob.style.display = "block";
|
||||||
|
softwareConsultantJob.style.display = "block";
|
||||||
itJob.style.display = "block";
|
itJob.style.display = "block";
|
||||||
securityEngineerJob.style.display = "block";
|
securityEngineerJob.style.display = "block";
|
||||||
networkEngineerJob.style.display = "block";
|
networkEngineerJob.style.display = "block";
|
||||||
@ -626,6 +646,7 @@ displayLocationContent = function() {
|
|||||||
locationInfo.innerHTML = Companies[loc].info;
|
locationInfo.innerHTML = Companies[loc].info;
|
||||||
|
|
||||||
softwareJob.style.display = "block";
|
softwareJob.style.display = "block";
|
||||||
|
softwareConsultantJob.style.display = "block";
|
||||||
itJob.style.display = "block";
|
itJob.style.display = "block";
|
||||||
securityEngineerJob.style.display = "block";
|
securityEngineerJob.style.display = "block";
|
||||||
networkEngineerJob.style.display = "block";
|
networkEngineerJob.style.display = "block";
|
||||||
@ -636,6 +657,7 @@ displayLocationContent = function() {
|
|||||||
locationInfo.innerHTML = Companies[loc].info;
|
locationInfo.innerHTML = Companies[loc].info;
|
||||||
|
|
||||||
softwareJob.style.display = "block";
|
softwareJob.style.display = "block";
|
||||||
|
softwareConsultantJob.style.display = "block";
|
||||||
itJob.style.display = "block";
|
itJob.style.display = "block";
|
||||||
securityEngineerJob.style.display = "block";
|
securityEngineerJob.style.display = "block";
|
||||||
networkEngineerJob.style.display = "block";
|
networkEngineerJob.style.display = "block";
|
||||||
@ -647,6 +669,7 @@ displayLocationContent = function() {
|
|||||||
locationInfo.innerHTML = Companies[loc].info;
|
locationInfo.innerHTML = Companies[loc].info;
|
||||||
|
|
||||||
waiterJob.style.display = "block";
|
waiterJob.style.display = "block";
|
||||||
|
waitPartTimeJob.style.display = "block";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
||||||
@ -663,6 +686,7 @@ displayLocationContent = function() {
|
|||||||
locationInfo.innerHTML = Companies[loc].info;
|
locationInfo.innerHTML = Companies[loc].info;
|
||||||
|
|
||||||
softwareJob.style.display = "block";
|
softwareJob.style.display = "block";
|
||||||
|
softwareConsultantJob.style.display = "block";
|
||||||
itJob.style.display = "block";
|
itJob.style.display = "block";
|
||||||
securityEngineerJob.style.display = "block";
|
securityEngineerJob.style.display = "block";
|
||||||
networkEngineerJob.style.display = "block";
|
networkEngineerJob.style.display = "block";
|
||||||
@ -683,6 +707,7 @@ displayLocationContent = function() {
|
|||||||
locationInfo.innerHTML = Companies[loc].info;
|
locationInfo.innerHTML = Companies[loc].info;
|
||||||
|
|
||||||
softwareJob.style.display = "block";
|
softwareJob.style.display = "block";
|
||||||
|
softwareConsultantJob.style.display = "block";
|
||||||
itJob.style.display = "block";
|
itJob.style.display = "block";
|
||||||
securityEngineerJob.style.display = "block";
|
securityEngineerJob.style.display = "block";
|
||||||
networkEngineerJob.style.display = "block";
|
networkEngineerJob.style.display = "block";
|
||||||
@ -693,6 +718,7 @@ displayLocationContent = function() {
|
|||||||
locationInfo.innerHTML = Companies[loc].info;
|
locationInfo.innerHTML = Companies[loc].info;
|
||||||
|
|
||||||
softwareJob.style.display = "block";
|
softwareJob.style.display = "block";
|
||||||
|
softwareConsultantJob.style.display = "block";
|
||||||
itJob.style.display = "block";
|
itJob.style.display = "block";
|
||||||
businessJob.style.display = "block";
|
businessJob.style.display = "block";
|
||||||
|
|
||||||
@ -714,8 +740,7 @@ displayLocationContent = function() {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case Locations.VolhavenZBInstituteOfTechnology:
|
case Locations.VolhavenZBInstituteOfTechnology:
|
||||||
var costMult = 4;
|
var costMult = 5, expMult = 4;
|
||||||
var expMult = 3;
|
|
||||||
displayUniversityLocationContent(costMult);
|
displayUniversityLocationContent(costMult);
|
||||||
setUniversityLocationButtons(costMult, expMult);
|
setUniversityLocationButtons(costMult, expMult);
|
||||||
break;
|
break;
|
||||||
@ -751,6 +776,7 @@ displayLocationContent = function() {
|
|||||||
locationInfo.innerHTML = Companies[loc].info;
|
locationInfo.innerHTML = Companies[loc].info;
|
||||||
|
|
||||||
softwareJob.style.display = "block";
|
softwareJob.style.display = "block";
|
||||||
|
softwareConsultantJob.style.display = "block";
|
||||||
itJob.style.display = "block";
|
itJob.style.display = "block";
|
||||||
securityEngineerJob.style.display = "block";
|
securityEngineerJob.style.display = "block";
|
||||||
networkEngineerJob.style.display = "block";
|
networkEngineerJob.style.display = "block";
|
||||||
@ -772,6 +798,7 @@ displayLocationContent = function() {
|
|||||||
locationInfo.innerHTML = Companies[loc].info;
|
locationInfo.innerHTML = Companies[loc].info;
|
||||||
|
|
||||||
softwareJob.style.display = "block";
|
softwareJob.style.display = "block";
|
||||||
|
softwareConsultantJob.style.display = "block";
|
||||||
itJob.style.display = "block";
|
itJob.style.display = "block";
|
||||||
securityEngineerJob.style.display = "block";
|
securityEngineerJob.style.display = "block";
|
||||||
networkEngineerJob.style.display = "block";
|
networkEngineerJob.style.display = "block";
|
||||||
@ -792,6 +819,7 @@ displayLocationContent = function() {
|
|||||||
locationInfo.innerHTML = Companies[loc].info;
|
locationInfo.innerHTML = Companies[loc].info;
|
||||||
|
|
||||||
softwareJob.style.display = "block";
|
softwareJob.style.display = "block";
|
||||||
|
softwareConsultantJob.style.display = "block";
|
||||||
itJob.style.display = "block";
|
itJob.style.display = "block";
|
||||||
securityEngineerJob.style.display = "block";
|
securityEngineerJob.style.display = "block";
|
||||||
networkEngineerJob.style.display = "block";
|
networkEngineerJob.style.display = "block";
|
||||||
@ -807,10 +835,9 @@ displayLocationContent = function() {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case Locations.VolhavenMilleniumFitnessGym:
|
case Locations.VolhavenMilleniumFitnessGym:
|
||||||
gymTrainStr.style.display = "block";
|
var costMult = 3, expMult = 2.5;
|
||||||
gymTrainDef.style.display = "block";
|
displayGymLocationContent(costMult);
|
||||||
gymTrainDex.style.display = "block";
|
setGymLocationButtons(costMult, expMult);
|
||||||
gymTrainAgi.style.display = "block";
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
//All Slums
|
//All Slums
|
||||||
@ -865,6 +892,7 @@ displayLocationContent = function() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Make the "Apply to be Employee and Waiter" texts disappear if you already hold the job
|
//Make the "Apply to be Employee and Waiter" texts disappear if you already hold the job
|
||||||
|
//Includes part-time stuff
|
||||||
if (loc == Player.companyName) {
|
if (loc == Player.companyName) {
|
||||||
var currPos = Player.companyPosition;
|
var currPos = Player.companyPosition;
|
||||||
|
|
||||||
@ -872,6 +900,10 @@ displayLocationContent = function() {
|
|||||||
employeeJob.style.display = "none";
|
employeeJob.style.display = "none";
|
||||||
} else if (currPos.positionName == CompanyPositions.Waiter.positionName) {
|
} else if (currPos.positionName == CompanyPositions.Waiter.positionName) {
|
||||||
waiterJob.style.display = "none";
|
waiterJob.style.display = "none";
|
||||||
|
} else if (currPos.positionName == CompanyPositions.PartTimeEmploye.positionName) {
|
||||||
|
employeePartTimeJob.style.display = "none";
|
||||||
|
} else if (currPos.positionName == CompanyPositions.PartTimeWaiter.positionName) {
|
||||||
|
waiterPartTimeJob.style.display = "none";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1287,23 +1319,22 @@ initLocationButtons = function() {
|
|||||||
|
|
||||||
|
|
||||||
//Buttons to interact at a location (apply for job/promotion, train, purchase, etc.)
|
//Buttons to interact at a location (apply for job/promotion, train, purchase, etc.)
|
||||||
var softwareJob = document.getElementById("location-software-job");
|
var softwareJob = document.getElementById("location-software-job");
|
||||||
var itJob = document.getElementById("location-it-job");
|
var softwareConsultantJob = document.getElementById("location-software-consultant-job")
|
||||||
var securityEngineerJob = document.getElementById("location-security-engineer-job");
|
var itJob = document.getElementById("location-it-job");
|
||||||
var networkEngineerJob = document.getElementById("location-network-engineer-job");
|
var securityEngineerJob = document.getElementById("location-security-engineer-job");
|
||||||
var businessJob = document.getElementById("location-business-job");
|
var networkEngineerJob = document.getElementById("location-network-engineer-job");
|
||||||
var securityJob = document.getElementById("location-security-job");
|
var businessJob = document.getElementById("location-business-job");
|
||||||
var agentJob = document.getElementById("location-agent-job");
|
var businessConsultantJob = document.getElementById("location-business-consultant-job");
|
||||||
var employeeJob = document.getElementById("location-employee-job");
|
var securityJob = document.getElementById("location-security-job");
|
||||||
var waiterJob = document.getElementById("location-waiter-job");
|
var agentJob = document.getElementById("location-agent-job");
|
||||||
|
var employeeJob = document.getElementById("location-employee-job");
|
||||||
|
var employeePartTimeJob = document.getElementById("location-parttime-employee-job");
|
||||||
|
var waiterJob = document.getElementById("location-waiter-job");
|
||||||
|
var waiterPartTimeJob = document.getElementById("location-parttime-waiter-job");
|
||||||
|
|
||||||
var work = document.getElementById("location-work");
|
var work = document.getElementById("location-work");
|
||||||
|
|
||||||
var gymTrainStr = document.getElementById("location-gym-train-str");
|
|
||||||
var gymTrainDef = document.getElementById("location-gym-train-def");
|
|
||||||
var gymTrainDex = document.getElementById("location-gym-train-dex");
|
|
||||||
var gymTrainAgi = document.getElementById("location-gym-train-agi");
|
|
||||||
|
|
||||||
var purchase1gb = document.getElementById("location-purchase-1gb");
|
var purchase1gb = document.getElementById("location-purchase-1gb");
|
||||||
var purchase2gb = document.getElementById("location-purchase-2gb");
|
var purchase2gb = document.getElementById("location-purchase-2gb");
|
||||||
var purchase4gb = document.getElementById("location-purchase-4gb");
|
var purchase4gb = document.getElementById("location-purchase-4gb");
|
||||||
@ -1340,6 +1371,11 @@ initLocationButtons = function() {
|
|||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
softwareConsultantJob.addEventListener("click", function() {
|
||||||
|
Player.applyForSoftwareConsultantJob();
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
itJob.addEventListener("click", function() {
|
itJob.addEventListener("click", function() {
|
||||||
Player.applyForSoftwareJob()
|
Player.applyForSoftwareJob()
|
||||||
return false;
|
return false;
|
||||||
@ -1360,6 +1396,11 @@ initLocationButtons = function() {
|
|||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
businessConsultantJob.addEventListener("click", function() {
|
||||||
|
Player.applyForBusinessConsultantJob();
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
securityJob.addEventListener("click", function() {
|
securityJob.addEventListener("click", function() {
|
||||||
Player.applyForSecurityJob();
|
Player.applyForSecurityJob();
|
||||||
return false;
|
return false;
|
||||||
@ -1375,63 +1416,73 @@ initLocationButtons = function() {
|
|||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
employeePartTimeJob.addEventListener("click", function() {
|
||||||
|
Player.applyForPartTimeEmployeeJob();
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
waiterJob.addEventListener("click", function() {
|
waiterJob.addEventListener("click", function() {
|
||||||
Player.applyForWaiterJob();
|
Player.applyForWaiterJob();
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
waiterPartTimeJob.addEventListener("click", function() {
|
||||||
|
Player.applyForPartTimeWaiterJob();
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
purchase1gb.addEventListener("click", function() {
|
purchase1gb.addEventListener("click", function() {
|
||||||
purchaseServerBoxCreate(1, 50000);
|
purchaseServerBoxCreate(1, 1 * CONSTANTS.BaseCostFor1GBOfRamServer);
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
purchase2gb.addEventListener("click", function() {
|
purchase2gb.addEventListener("click", function() {
|
||||||
purchaseServerBoxCreate(2, 100000);
|
purchaseServerBoxCreate(2, 2 * CONSTANTS.BaseCostFor1GBOfRamServer);
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
purchase4gb.addEventListener("click", function() {
|
purchase4gb.addEventListener("click", function() {
|
||||||
purchaseServerBoxCreate(4, 250000);
|
purchaseServerBoxCreate(4, 4 * CONSTANTS.BaseCostFor1GBOfRamServer);
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
purchase8gb.addEventListener("click", function() {
|
purchase8gb.addEventListener("click", function() {
|
||||||
purchaseServerBoxCreate(8, 1000000);
|
purchaseServerBoxCreate(8, 8 * CONSTANTS.BaseCostFor1GBOfRamServer);
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
purchase16gb.addEventListener("click", function() {
|
purchase16gb.addEventListener("click", function() {
|
||||||
purchaseServerBoxCreate(16, 4000000);
|
purchaseServerBoxCreate(16, 16 * CONSTANTS.BaseCostFor1GBOfRamServer);
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
purchase32gb.addEventListener("click", function() {
|
purchase32gb.addEventListener("click", function() {
|
||||||
purchaseServerBoxCreate(32, 10000000);
|
purchaseServerBoxCreate(32, 32 * CONSTANTS.BaseCostFor1GBOfRamServer);
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
purchase64gb.addEventListener("click", function() {
|
purchase64gb.addEventListener("click", function() {
|
||||||
purchaseServerBoxCreate(64, 20000000);
|
purchaseServerBoxCreate(64, 64 * CONSTANTS.BaseCostFor1GBOfRamServer);
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
purchase128gb.addEventListener("click", function() {
|
purchase128gb.addEventListener("click", function() {
|
||||||
purchaseServerBoxCreate(128, 50000000);
|
purchaseServerBoxCreate(128, 128 * CONSTANTS.BaseCostFor1GBOfRamServer);
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
purchase256gb.addEventListener("click", function() {
|
purchase256gb.addEventListener("click", function() {
|
||||||
purchaseServerBoxCreate(256, 100000000);
|
purchaseServerBoxCreate(256, 256 * CONSTANTS.BaseCostFor1GBOfRamServer);
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
purchase512gb.addEventListener("click", function() {
|
purchase512gb.addEventListener("click", function() {
|
||||||
purchaseServerBoxCreate(512, 250000000);
|
purchaseServerBoxCreate(512, 512 * CONSTANTS.BaseCostFor1GBOfRamServer);
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
purchase1tb.addEventListener("click", function() {
|
purchase1tb.addEventListener("click", function() {
|
||||||
purchaseServerBoxCreate(1024, 750000000);
|
purchaseServerBoxCreate(1024, 1024 * CONSTANTS.BaseCostFor1GBOfRamServer);
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -1575,60 +1626,92 @@ displayUniversityLocationContent = function(costMult) {
|
|||||||
|
|
||||||
//Update button text to show cost
|
//Update button text to show cost
|
||||||
classDataStructuresButton.innerHTML = "Take Data Structures course ($" + dataStructuresCost + " / sec)";
|
classDataStructuresButton.innerHTML = "Take Data Structures course ($" + dataStructuresCost + " / sec)";
|
||||||
classNetworksButton.innerHTML = "Take Networks course ($" + networksCost + " / second)";
|
classNetworksButton.innerHTML = "Take Networks course ($" + networksCost + " / sec)";
|
||||||
classAlgorithmsButton.innerHTML = "Take Algorithms course ($" + algorithmsCost + " / second)";
|
classAlgorithmsButton.innerHTML = "Take Algorithms course ($" + algorithmsCost + " / sec)";
|
||||||
classManagementButton.innerHTML = "Take Management course ($" + managementCost + " / second)";
|
classManagementButton.innerHTML = "Take Management course ($" + managementCost + " / sec)";
|
||||||
classLeadershipButton.innerHTML = "Take Leadership course ($" + leadershipCost + " / second)";
|
classLeadershipButton.innerHTML = "Take Leadership course ($" + leadershipCost + " / sec)";
|
||||||
}
|
}
|
||||||
|
|
||||||
setUniversityLocationButtons = function(costMult, expMult) {
|
setUniversityLocationButtons = function(costMult, expMult) {
|
||||||
var studyComputerScience= document.getElementById("location-study-computer-science");
|
var newStudyCS = clearEventListeners("location-study-computer-science");
|
||||||
var classDataStructures = document.getElementById("location-data-structures-class");
|
|
||||||
var classNetworks = document.getElementById("location-networks-class");
|
|
||||||
var classAlgorithms = document.getElementById("location-algorithms-class");
|
|
||||||
var classManagement = document.getElementById("location-management-class");
|
|
||||||
var classLeadership = document.getElementById("location-leadership-class");
|
|
||||||
|
|
||||||
var newStudyCS = studyComputerScience.cloneNode(true);
|
|
||||||
studyComputerScience.parentNode.replaceChild(newStudyCS, studyComputerScience)
|
|
||||||
newStudyCS.addEventListener("click", function() {
|
newStudyCS.addEventListener("click", function() {
|
||||||
Player.startClass(costMult, expMult, CONSTANTS.ClassStudyComputerScience);
|
Player.startClass(costMult, expMult, CONSTANTS.ClassStudyComputerScience);
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
var newClassDataStructures = classDataStructures.cloneNode(true);
|
var newClassDataStructures = clearEventListeners("location-data-structures-class");
|
||||||
classDataStructures.parentNode.replaceChild(newClassDataStructures, classDataStructures);
|
|
||||||
newClassDataStructures.addEventListener("click", function() {
|
newClassDataStructures.addEventListener("click", function() {
|
||||||
Player.startClass(costMult, expMult, CONSTANTS.ClassDataStructures);
|
Player.startClass(costMult, expMult, CONSTANTS.ClassDataStructures);
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
var newClassNetworks = classNetworks.cloneNode(true);
|
var newClassNetworks = clearEventListeners("location-networks-class");
|
||||||
classNetworks.parentNode.replaceChild(newClassNetworks, classNetworks);
|
|
||||||
newClassNetworks.addEventListener("click", function() {
|
newClassNetworks.addEventListener("click", function() {
|
||||||
Player.startClass(costMult, expMult, CONSTANTS.ClassNetworks);
|
Player.startClass(costMult, expMult, CONSTANTS.ClassNetworks);
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
var newClassAlgorithms = classAlgorithms.cloneNode(true);
|
var newClassAlgorithms = clearEventListeners("location-algorithms-class");
|
||||||
classAlgorithms.parentNode.replaceChild(newClassAlgorithms, classAlgorithms);
|
|
||||||
newClassAlgorithms.addEventListener("click", function() {
|
newClassAlgorithms.addEventListener("click", function() {
|
||||||
Player.startClass(costMult, expMult, CONSTANTS.ClassAlgorithms);
|
Player.startClass(costMult, expMult, CONSTANTS.ClassAlgorithms);
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
var newClassManagement = classManagement.cloneNode(true);
|
var newClassManagement = clearEventListeners("location-management-class");
|
||||||
classManagement.parentNode.replaceChild(newClassManagement, classManagement);
|
|
||||||
newClassManagement.addEventListener("click", function() {
|
newClassManagement.addEventListener("click", function() {
|
||||||
Player.startClass(costMult, expMult, CONSTANTS.ClassManagement);
|
Player.startClass(costMult, expMult, CONSTANTS.ClassManagement);
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
var newClassLeadership = classLeadership.cloneNode(true);
|
var newClassLeadership = clearEventListeners("location-leadership-class");
|
||||||
classLeadership.parentNode.replaceChild(newClassLeadership, classLeadership);
|
|
||||||
newClassLeadership.addEventListener("click", function() {
|
newClassLeadership.addEventListener("click", function() {
|
||||||
Player.startClass(costMult, expMult, CONSTANTS.ClassLeadership);
|
Player.startClass(costMult, expMult, CONSTANTS.ClassLeadership);
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
displayGymLocationContent = function(costMult) {
|
||||||
|
var gymStrButton = document.getElementById("location-gym-train-str");
|
||||||
|
var gymDefButton = document.getElementById("location-gym-train-def");
|
||||||
|
var gymDexButton = document.getElementById("location-gym-train-dex");
|
||||||
|
var gymAgiButton = document.getElementById("location-gym-train-agi");
|
||||||
|
gymStrButton.style.display = "block";
|
||||||
|
gymDefButton.style.display = "block";
|
||||||
|
gymDexButton.style.display = "block";
|
||||||
|
gymAgiButton.style.display = "block";
|
||||||
|
|
||||||
|
//Costs (per second)
|
||||||
|
var cost = CONSTANTS.ClassGymBaseCost * costMult;
|
||||||
|
|
||||||
|
//Update button text to show cost
|
||||||
|
gymStrButton.innerHTML = "Train Strength ($" + cost + " / sec)";
|
||||||
|
gymDefButton.innerHTML = "Train Defense ($" + cost + " / sec)";
|
||||||
|
gymDexButton.innerHTML = "Train Dexterity ($" + cost + " / sec)";
|
||||||
|
gymAgiButton.innerHTML = "Train Agility ($" + cost + " / sec)";
|
||||||
|
}
|
||||||
|
|
||||||
|
setGymLocationButtons = function(costMult, expMult) {
|
||||||
|
var gymStr = clearEventListeners("location-gym-train-str");
|
||||||
|
gymStr.addEventListener("click", function() {
|
||||||
|
Player.startClass(costMult, expMult, CONSTANTS.ClassGymStrength);
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
|
var gymDef = clearEventListeners("location-gym-train-def");
|
||||||
|
gymDef.addEventListener("click", function() {
|
||||||
|
Player.startClass(costMult, expMult, CONSTANTS.ClassGymDefense);
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
|
var gymDex = clearEventListeners("location-gym-train-dex");
|
||||||
|
gymDex.addEventListener("click", function() {
|
||||||
|
Player.startClass(costMult, expMult, CONSTANTS.ClassGymDexterity);
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
|
var gymAgi = clearEventListeners("location-gym-train-agi");
|
||||||
|
gymAgi.addEventListener("click", function() {
|
||||||
|
Player.startClass(costMult, expMult, CONSTANTS.ClassGymAgility);
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
@ -254,6 +254,8 @@ function evaluate(exp, workerScript) {
|
|||||||
server.moneyAvailable -= moneyGained;
|
server.moneyAvailable -= moneyGained;
|
||||||
Player.gainMoney(moneyGained);
|
Player.gainMoney(moneyGained);
|
||||||
workerScript.scriptRef.onlineMoneyMade += moneyGained;
|
workerScript.scriptRef.onlineMoneyMade += moneyGained;
|
||||||
|
console.log("About to add to moneystolenmap for " + server.hostname);
|
||||||
|
workerScript.scriptRef.moneyStolenMap[server.ip] += moneyGained;
|
||||||
|
|
||||||
Player.gainHackingExp(expGainedOnSuccess);
|
Player.gainHackingExp(expGainedOnSuccess);
|
||||||
workerScript.scriptRef.onlineExpGained += expGainedOnSuccess;
|
workerScript.scriptRef.onlineExpGained += expGainedOnSuccess;
|
||||||
|
176
src/Player.js
176
src/Player.js
@ -75,10 +75,11 @@ function PlayerObject() {
|
|||||||
this.companyPosition = ""; //CompanyPosition object
|
this.companyPosition = ""; //CompanyPosition object
|
||||||
|
|
||||||
//Servers
|
//Servers
|
||||||
this.currentServer = ""; //IP address of Server currently being accessed through terminal
|
this.currentServer = ""; //IP address of Server currently being accessed through terminal
|
||||||
this.discoveredServers = []; //IP addresses of secret servers not in the network that you have discovered
|
this.discoveredServers = []; //IP addresses of secret servers not in the network that you have discovered
|
||||||
this.purchasedServers = [];
|
this.purchasedServers = [];
|
||||||
this.hacknetNodes = [];
|
this.hacknetNodes = [];
|
||||||
|
this.totalHacknetNodeProduction = 0;
|
||||||
|
|
||||||
//Factions
|
//Factions
|
||||||
this.factions = []; //Names of all factions player has joined
|
this.factions = []; //Names of all factions player has joined
|
||||||
@ -384,11 +385,7 @@ PlayerObject.prototype.finishWork = function(cancelled) {
|
|||||||
|
|
||||||
this.updateSkillLevels();
|
this.updateSkillLevels();
|
||||||
|
|
||||||
var txt = "";
|
var txt = "You earned a total of: <br>" +
|
||||||
if (cancelled) {
|
|
||||||
txt = "You worked a short shift of " + convertTimeMsToTimeElapsedString(this.timeWorked) + " <br><br> " +
|
|
||||||
"Since you cancelled your work early, you only gained half of the experience, money, and reputation you earned. <br><br>" +
|
|
||||||
"You earned a total of: <br>" +
|
|
||||||
"$" + formatNumber(this.workMoneyGained / cancMult, 2) + "<br>" +
|
"$" + formatNumber(this.workMoneyGained / cancMult, 2) + "<br>" +
|
||||||
formatNumber(this.workRepGained / cancMult, 4) + " reputation for the company <br>" +
|
formatNumber(this.workRepGained / cancMult, 4) + " reputation for the company <br>" +
|
||||||
formatNumber(this.workHackExpGained / cancMult, 4) + " hacking exp <br>" +
|
formatNumber(this.workHackExpGained / cancMult, 4) + " hacking exp <br>" +
|
||||||
@ -398,25 +395,18 @@ PlayerObject.prototype.finishWork = function(cancelled) {
|
|||||||
formatNumber(this.workAgiExpGained / cancMult, 4) + " agility exp <br>" +
|
formatNumber(this.workAgiExpGained / cancMult, 4) + " agility exp <br>" +
|
||||||
formatNumber(this.workChaExpGained / cancMult, 4) + " charisma exp<br>";
|
formatNumber(this.workChaExpGained / cancMult, 4) + " charisma exp<br>";
|
||||||
|
|
||||||
|
if (cancelled) {
|
||||||
|
txt = "You worked a short shift of " + convertTimeMsToTimeElapsedString(this.timeWorked) + " <br><br> " +
|
||||||
|
"Since you cancelled your work early, you only gained half of the experience, money, and reputation you earned. <br><br>" + txt;
|
||||||
} else {
|
} else {
|
||||||
txt = "You worked a full shift of 8 hours! <br><br> " +
|
txt = "You worked a full shift of 8 hours! <br><br> " +
|
||||||
"You earned a total of: <br>" +
|
"You earned a total of: <br>" + txt;
|
||||||
"$" + formatNumber(this.workMoneyGained / cancMult, 2) + "<br>" +
|
|
||||||
formatNumber(this.workRepGained / cancMult, 4) + " reputation for the company <br>" +
|
|
||||||
formatNumber(this.workHackExpGained / cancMult, 4) + " hacking exp <br>" +
|
|
||||||
formatNumber(this.workStrExpGained / cancMult, 4) + " strength exp <br>" +
|
|
||||||
formatNumber(this.workDefExpGained / cancMult, 4) + " defense exp <br>" +
|
|
||||||
formatNumber(this.workDexExpGained / cancMult, 4) + " dexterity exp <br>" +
|
|
||||||
formatNumber(this.workAgiExpGained / cancMult, 4) + " agility exp <br>" +
|
|
||||||
formatNumber(this.workChaExpGained / cancMult, 4) + " charisma exp <br>";
|
|
||||||
}
|
}
|
||||||
dialogBoxCreate(txt);
|
dialogBoxCreate(txt);
|
||||||
|
|
||||||
var mainMenu = document.getElementById("mainmenu-container");
|
var mainMenu = document.getElementById("mainmenu-container");
|
||||||
mainMenu.style.visibility = "visible";
|
mainMenu.style.visibility = "visible";
|
||||||
|
|
||||||
this.isWorking = false;
|
this.isWorking = false;
|
||||||
|
|
||||||
Engine.loadTerminalContent();
|
Engine.loadTerminalContent();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -436,12 +426,8 @@ PlayerObject.prototype.startWork = function() {
|
|||||||
|
|
||||||
this.timeNeededToCompleteWork = CONSTANTS.MillisecondsPer8Hours;
|
this.timeNeededToCompleteWork = CONSTANTS.MillisecondsPer8Hours;
|
||||||
|
|
||||||
var cancelButton = document.getElementById("work-in-progress-cancel-button");
|
|
||||||
|
|
||||||
//Remove all old event listeners from Cancel button
|
//Remove all old event listeners from Cancel button
|
||||||
var newCancelButton = cancelButton.cloneNode(true);
|
var newCancelButton = clearEventListeners("work-in-progress-cancel-button");
|
||||||
cancelButton.parentNode.replaceChild(newCancelButton, cancelButton);
|
|
||||||
|
|
||||||
newCancelButton.addEventListener("click", function() {
|
newCancelButton.addEventListener("click", function() {
|
||||||
Player.finishWork(true);
|
Player.finishWork(true);
|
||||||
return false;
|
return false;
|
||||||
@ -479,6 +465,7 @@ PlayerObject.prototype.work = function(numCycles) {
|
|||||||
this.workRepGained = this.workRepGainRate * maxCycles;
|
this.workRepGained = this.workRepGainRate * maxCycles;
|
||||||
this.workMoneyGained = this.workMoneyGainRate * maxCycles;
|
this.workMoneyGained = this.workMoneyGainRate * maxCycles;
|
||||||
this.finishWork(false);
|
this.finishWork(false);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var txt = document.getElementById("work-in-progress-text");
|
var txt = document.getElementById("work-in-progress-text");
|
||||||
@ -494,13 +481,114 @@ PlayerObject.prototype.work = function(numCycles) {
|
|||||||
formatNumber(this.workDexExpGained, 4) + " (" + formatNumber(this.workDexExpGainRate * cyclesPerSec, 4) + " / sec) dexterity exp <br>" +
|
formatNumber(this.workDexExpGained, 4) + " (" + formatNumber(this.workDexExpGainRate * cyclesPerSec, 4) + " / sec) dexterity exp <br>" +
|
||||||
formatNumber(this.workAgiExpGained, 4) + " (" + formatNumber(this.workAgiExpGainRate * cyclesPerSec, 4) + " / sec) agility exp <br><br> " +
|
formatNumber(this.workAgiExpGained, 4) + " (" + formatNumber(this.workAgiExpGainRate * cyclesPerSec, 4) + " / sec) agility exp <br><br> " +
|
||||||
formatNumber(this.workChaExpGained, 4) + " (" + formatNumber(this.workChaExpGainRate * cyclesPerSec, 4) + " / sec) charisma exp <br><br>" +
|
formatNumber(this.workChaExpGained, 4) + " (" + formatNumber(this.workChaExpGainRate * cyclesPerSec, 4) + " / sec) charisma exp <br><br>" +
|
||||||
|
|
||||||
|
|
||||||
"You will automatically finish after working for 8 hours. You can cancel earlier if you wish, <br>" +
|
"You will automatically finish after working for 8 hours. You can cancel earlier if you wish, <br>" +
|
||||||
"but you will only gain half of the experience, money, and reputation you've earned so far."
|
"but you will only gain half of the experience, money, and reputation you've earned so far."
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
PlayerObject.prototype.startWorkPartTime = function() {
|
||||||
|
this.resetWorkStatus();
|
||||||
|
this.isWorking = true;
|
||||||
|
this.workType = CONSTANTS.WorkTypeCompanyPartTime;
|
||||||
|
|
||||||
|
this.workHackExpGainRate = this.getWorkHackExpGain();
|
||||||
|
this.workStrExpGainRate = this.getWorkStrExpGain();
|
||||||
|
this.workDefExpGainRate = this.getWorkDefExpGain();
|
||||||
|
this.workDexExpGainRate = this.getWorkDexExpGain();
|
||||||
|
this.workAgiExpGainRate = this.getWorkAgiExpGain();
|
||||||
|
this.workChaExpGainRate = this.getWorkChaExpGain();
|
||||||
|
this.workRepGainRate = this.getWorkRepGain();
|
||||||
|
this.workMoneyGainRate = this.getWorkMoneyGain();
|
||||||
|
|
||||||
|
this.timeNeededToCompleteWork = CONSTANTS.MillisecondsPer8Hours;
|
||||||
|
|
||||||
|
var newCancelButton = clearEventListeners("work-in-progress-cancel-button");
|
||||||
|
newCancelButton.addEventListener("click", function() {
|
||||||
|
Player.finishWorkPartTime();
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
|
//Display Work In Progress Screen
|
||||||
|
Engine.loadWorkInProgressContent();
|
||||||
|
}
|
||||||
|
|
||||||
|
PlayerObject.prototype.workPartTime = function(numCycles) {
|
||||||
|
this.workRepGainRate = this.getWorkRepGain();
|
||||||
|
|
||||||
|
this.workHackExpGained += this.workHackExpGainRate * numCycles;
|
||||||
|
this.workStrExpGained += this.workStrExpGainRate * numCycles;
|
||||||
|
this.workDefExpGained += this.workDefExpGainRate * numCycles;
|
||||||
|
this.workDexExpGained += this.workDexExpGainRate * numCycles;
|
||||||
|
this.workAgiExpGained += this.workAgiExpGainRate * numCycles;
|
||||||
|
this.workChaExpGained += this.workChaExpGainRate * numCycles;
|
||||||
|
this.workRepGained += this.workRepGainRate * numCycles;
|
||||||
|
this.workMoneyGained += this.workMoneyGainRate * numCycles;
|
||||||
|
|
||||||
|
var cyclesPerSec = 1000 / Engine._idleSpeed;
|
||||||
|
|
||||||
|
this.timeWorked += Engine._idleSpeed * numCycles;
|
||||||
|
|
||||||
|
//If timeWorked == 8 hours, then finish. You can only gain 8 hours worth of exp and money
|
||||||
|
if (this.timeWorked >= CONSTANTS.MillisecondsPer8Hours) {
|
||||||
|
var maxCycles = CONSTANTS.GameCyclesPer8Hours;
|
||||||
|
this.workHackExpGained = this.workHackExpGainRate * maxCycles;
|
||||||
|
this.workStrExpGained = this.workStrExpGainRate * maxCycles;
|
||||||
|
this.workDefExpGained = this.workDefExpGainRate * maxCycles;
|
||||||
|
this.workDexExpGained = this.workDexExpGainRate * maxCycles;
|
||||||
|
this.workAgiExpGained = this.workAgiExpGainRate * maxCycles;
|
||||||
|
this.workChaExpGained = this.workChaExpGainRate * maxCycles;
|
||||||
|
this.workRepGained = this.workRepGainRate * maxCycles;
|
||||||
|
this.workMoneyGained = this.workMoneyGainRate * maxCycles;
|
||||||
|
this.finishWorkPartTime();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var txt = document.getElementById("work-in-progress-text");
|
||||||
|
txt.innerHTML = "You are currently working as a " + this.companyPosition.positionName +
|
||||||
|
" at " + Player.companyName + "<br><br>" +
|
||||||
|
"You have been working for " + convertTimeMsToTimeElapsedString(this.timeWorked) + "<br><br>" +
|
||||||
|
"You have earned: <br><br>" +
|
||||||
|
"$" + formatNumber(this.workMoneyGained, 2) + " ($" + formatNumber(this.workMoneyGainRate * cyclesPerSec, 2) + " / sec) <br><br>" +
|
||||||
|
formatNumber(this.workRepGained, 4) + " (" + formatNumber(this.workRepGainRate * cyclesPerSec, 4) + " / sec) reputation for this company <br><br>" +
|
||||||
|
formatNumber(this.workHackExpGained, 4) + " (" + formatNumber(this.workHackExpGainRate * cyclesPerSec, 4) + " / sec) hacking exp <br><br>" +
|
||||||
|
formatNumber(this.workStrExpGained, 4) + " (" + formatNumber(this.workStrExpGainRate * cyclesPerSec, 4) + " / sec) strength exp <br>" +
|
||||||
|
formatNumber(this.workDefExpGained, 4) + " (" + formatNumber(this.workDefExpGainRate * cyclesPerSec, 4) + " / sec) defense exp <br>" +
|
||||||
|
formatNumber(this.workDexExpGained, 4) + " (" + formatNumber(this.workDexExpGainRate * cyclesPerSec, 4) + " / sec) dexterity exp <br>" +
|
||||||
|
formatNumber(this.workAgiExpGained, 4) + " (" + formatNumber(this.workAgiExpGainRate * cyclesPerSec, 4) + " / sec) agility exp <br><br> " +
|
||||||
|
formatNumber(this.workChaExpGained, 4) + " (" + formatNumber(this.workChaExpGainRate * cyclesPerSec, 4) + " / sec) charisma exp <br><br>" +
|
||||||
|
"You will automatically finish after working for 8 hours. You can cancel earlier if you wish, <br>" +
|
||||||
|
"and there will be no penalty because this is a part-time job.";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
PlayerObject.prototype.finishWorkPartTime = function() {
|
||||||
|
this.gainWorkExp(cancMult);
|
||||||
|
|
||||||
|
var company = Companies[this.companyName];
|
||||||
|
company.playerReputation += (this.workRepGained / cancMult);
|
||||||
|
|
||||||
|
this.gainMoney(this.workMoneyGained / cancMult);
|
||||||
|
|
||||||
|
this.updateSkillLevels();
|
||||||
|
|
||||||
|
var txt = "You earned a total of: <br>" +
|
||||||
|
"$" + formatNumber(this.workMoneyGained / cancMult, 2) + "<br>" +
|
||||||
|
formatNumber(this.workRepGained / cancMult, 4) + " reputation for the company <br>" +
|
||||||
|
formatNumber(this.workHackExpGained / cancMult, 4) + " hacking exp <br>" +
|
||||||
|
formatNumber(this.workStrExpGained / cancMult, 4) + " strength exp <br>" +
|
||||||
|
formatNumber(this.workDefExpGained / cancMult, 4) + " defense exp <br>" +
|
||||||
|
formatNumber(this.workDexExpGained / cancMult, 4) + " dexterity exp <br>" +
|
||||||
|
formatNumber(this.workAgiExpGained / cancMult, 4) + " agility exp <br>" +
|
||||||
|
formatNumber(this.workChaExpGained / cancMult, 4) + " charisma exp<br>";
|
||||||
|
txt = "You worked for " + convertTimeMsToTimeElapsedString(this.timeWorked) + ".<br><br> " + txt;
|
||||||
|
dialogBoxCreate(txt);
|
||||||
|
|
||||||
|
var mainMenu = document.getElementById("mainmenu-container");
|
||||||
|
mainMenu.style.visibility = "visible";
|
||||||
|
this.isWorking = false;
|
||||||
|
Engine.loadTerminalContent();
|
||||||
|
}
|
||||||
|
|
||||||
/* Working for Faction */
|
/* Working for Faction */
|
||||||
PlayerObject.prototype.finishFactionWork = function(cancelled, faction) {
|
PlayerObject.prototype.finishFactionWork = function(cancelled, faction) {
|
||||||
this.gainWorkExp();
|
this.gainWorkExp();
|
||||||
@ -805,11 +893,11 @@ PlayerObject.prototype.startClass = function(costMult, expMult, className) {
|
|||||||
var baseAlgorithmsExp = 2.0;
|
var baseAlgorithmsExp = 2.0;
|
||||||
var baseManagementExp = 1.0;
|
var baseManagementExp = 1.0;
|
||||||
var baseLeadershipExp = 2.0;
|
var baseLeadershipExp = 2.0;
|
||||||
|
var baseGymExp = 1.0;
|
||||||
|
|
||||||
//Find cost and exp gain per game cycle
|
//Find cost and exp gain per game cycle
|
||||||
var cost = 0;
|
var cost = 0;
|
||||||
var hackExp = 0;
|
var hackExp = 0, strExp = 0, defExp = 0, dexExp = 0, agiExp = 0, chaExp = 0;
|
||||||
var chaExp = 0;
|
|
||||||
switch (className) {
|
switch (className) {
|
||||||
case CONSTANTS.ClassStudyComputerScience:
|
case CONSTANTS.ClassStudyComputerScience:
|
||||||
hackExp = baseStudyComputerScienceExp * expMult / gameCPS;
|
hackExp = baseStudyComputerScienceExp * expMult / gameCPS;
|
||||||
@ -834,6 +922,22 @@ PlayerObject.prototype.startClass = function(costMult, expMult, className) {
|
|||||||
cost = CONSTANTS.ClassLeadershipBaseCost * costMult / gameCPS;
|
cost = CONSTANTS.ClassLeadershipBaseCost * costMult / gameCPS;
|
||||||
chaExp = baseLeadershipExp * expMult / gameCPS;
|
chaExp = baseLeadershipExp * expMult / gameCPS;
|
||||||
break;
|
break;
|
||||||
|
case CONSTANTS.ClassGymStrength:
|
||||||
|
cost = CONSTANTS.ClassGymBaseCost * costMult / gameCPS;
|
||||||
|
strExp = baseGymExp * expMult / gameCPS;
|
||||||
|
break;
|
||||||
|
case CONSTANTS.ClassGymDefense:
|
||||||
|
cost = CONSTANTS.ClassGymBaseCost * costMult / gameCPS;
|
||||||
|
defExp = baseGymExp * expMult / gameCPS;
|
||||||
|
break;
|
||||||
|
case CONSTANTS.ClassGymDexterity:
|
||||||
|
cost = CONSTANTS.ClassGymBaseCost * costMult / gameCPS;
|
||||||
|
dexExp = baseGymExp * expMult / gameCPS;
|
||||||
|
break;
|
||||||
|
case CONSTANTS.ClassGymAgility:
|
||||||
|
cost = CONSTANTS.ClassGymBaseCost * costMult / gameCPS;
|
||||||
|
agiExp = baseGymExp * expMult / gameCPS;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
throw new Error("ERR: Invalid/unregocnized class name");
|
throw new Error("ERR: Invalid/unregocnized class name");
|
||||||
return;
|
return;
|
||||||
@ -841,6 +945,10 @@ PlayerObject.prototype.startClass = function(costMult, expMult, className) {
|
|||||||
|
|
||||||
this.workMoneyLossRate = cost;
|
this.workMoneyLossRate = cost;
|
||||||
this.workHackExpGainRate = hackExp * this.hacking_exp_mult;
|
this.workHackExpGainRate = hackExp * this.hacking_exp_mult;
|
||||||
|
this.workStrExpGainRate = strExp * this.strength_exp_mult;
|
||||||
|
this.workDefExpGainRate = defExp * this.defense_exp_mult;
|
||||||
|
this.workDexExpGainRate = dexExp * this.dexterity_exp_mult;
|
||||||
|
this.workAgiExpGainRate = agiExp * this.agility_exp_mult;
|
||||||
this.workChaExpGainRate = chaExp * this.charisma_exp_mult;
|
this.workChaExpGainRate = chaExp * this.charisma_exp_mult;
|
||||||
|
|
||||||
var cancelButton = document.getElementById("work-in-progress-cancel-button");
|
var cancelButton = document.getElementById("work-in-progress-cancel-button");
|
||||||
@ -933,12 +1041,8 @@ PlayerObject.prototype.startCrime = function(hackExp, strExp, defExp, dexExp, ag
|
|||||||
|
|
||||||
this.timeNeededToCompleteWork = time;
|
this.timeNeededToCompleteWork = time;
|
||||||
|
|
||||||
var cancelButton = document.getElementById("work-in-progress-cancel-button");
|
|
||||||
|
|
||||||
//Remove all old event listeners from Cancel button
|
//Remove all old event listeners from Cancel button
|
||||||
var newCancelButton = cancelButton.cloneNode(true);
|
var newCancelButton = clearEventListeners("work-in-progress-cancel-button")
|
||||||
cancelButton.parentNode.replaceChild(newCancelButton, cancelButton);
|
|
||||||
|
|
||||||
newCancelButton.addEventListener("click", function() {
|
newCancelButton.addEventListener("click", function() {
|
||||||
Player.finishCrime(true);
|
Player.finishCrime(true);
|
||||||
return false;
|
return false;
|
||||||
@ -955,6 +1059,8 @@ PlayerObject.prototype.commitCrime = function (numCycles) {
|
|||||||
|
|
||||||
var percent = Math.round(Player.timeWorked / Player.timeNeededToCompleteWork * 100);
|
var percent = Math.round(Player.timeWorked / Player.timeNeededToCompleteWork * 100);
|
||||||
var numBars = Math.round(percent / 5);
|
var numBars = Math.round(percent / 5);
|
||||||
|
if (numBars < 0) {numBars = 0;}
|
||||||
|
if (numBars > 20) {numBars = 20;}
|
||||||
var progressBar = "[" + Array(numBars+1).join("|") + Array(20 - numBars + 1).join(" ") + "]";
|
var progressBar = "[" + Array(numBars+1).join("|") + Array(20 - numBars + 1).join(" ") + "]";
|
||||||
|
|
||||||
var txt = document.getElementById("work-in-progress-text");
|
var txt = document.getElementById("work-in-progress-text");
|
||||||
|
@ -125,6 +125,16 @@ function prestigeAugmentation() {
|
|||||||
Player.currentServer = homeComp.ip;
|
Player.currentServer = homeComp.ip;
|
||||||
Player.homeComputer = homeComp.ip;
|
Player.homeComputer = homeComp.ip;
|
||||||
AddToAllServers(homeComp);
|
AddToAllServers(homeComp);
|
||||||
|
//Reset statistics of all scripts on home computer
|
||||||
|
for (var i = 0; i < homeComp.scripts.length; ++i) {
|
||||||
|
var s = homeComp.scripts[i];
|
||||||
|
s.offlineRunningTime = 0.01; //Seconds
|
||||||
|
s.offlineMoneyMade = 0;
|
||||||
|
s.offlineExpGained = 0;
|
||||||
|
s.onlineRunningTime = 0.01; //Seconds
|
||||||
|
s.onlineMoneyMade = 0;
|
||||||
|
s.onlineExpGained = 0;
|
||||||
|
}
|
||||||
|
|
||||||
//Delete all running scripts objects
|
//Delete all running scripts objects
|
||||||
for (var i = 0; i < workerScripts.length; ++i) {
|
for (var i = 0; i < workerScripts.length; ++i) {
|
||||||
@ -139,6 +149,7 @@ function prestigeAugmentation() {
|
|||||||
|
|
||||||
//Delete Hacknet Nodes
|
//Delete Hacknet Nodes
|
||||||
Player.hacknetNodes.length = 0;
|
Player.hacknetNodes.length = 0;
|
||||||
|
Player.totalHacknetNodeProduction = 0;
|
||||||
|
|
||||||
//Delete Special Server IPs
|
//Delete Special Server IPs
|
||||||
for (var member in SpecialServerIps) {
|
for (var member in SpecialServerIps) {
|
||||||
|
@ -110,6 +110,7 @@ function Script() {
|
|||||||
this.onlineMoneyMade = 0;
|
this.onlineMoneyMade = 0;
|
||||||
this.onlineExpGained = 0;
|
this.onlineExpGained = 0;
|
||||||
|
|
||||||
|
this.moneyStolenMap = new AllServersToMoneyMap();
|
||||||
};
|
};
|
||||||
|
|
||||||
//Get the script data from the Script Editor and save it to the object
|
//Get the script data from the Script Editor and save it to the object
|
||||||
@ -211,41 +212,57 @@ scriptCalculateOfflineProduction = function(script) {
|
|||||||
var thisUpdate = new Date().getTime();
|
var thisUpdate = new Date().getTime();
|
||||||
var lastUpdate = Player.lastUpdate;
|
var lastUpdate = Player.lastUpdate;
|
||||||
var timePassed = (thisUpdate - lastUpdate) / 1000; //Seconds
|
var timePassed = (thisUpdate - lastUpdate) / 1000; //Seconds
|
||||||
console.log("Offline for " + timePassed.toString() + " seconds");
|
console.log("Offline for " + timePassed + " seconds");
|
||||||
|
|
||||||
//Calculate the "confidence" rating of the script's true production. This is based
|
//Calculate the "confidence" rating of the script's true production. This is based
|
||||||
//entirely off of time. We will arbitrarily say that if a script has been running for
|
//entirely off of time. We will arbitrarily say that if a script has been running for
|
||||||
//4 hours (14400 sec) then we are completely confident in its ability
|
//4 hours (14400 sec) then we are completely confident in its ability
|
||||||
var confidence = (script.onlineRunningTime) / 14400;
|
var confidence = (script.onlineRunningTime) / 14400;
|
||||||
if (confidence >= 1) {confidence = 1;}
|
if (confidence >= 1) {confidence = 1;}
|
||||||
console.log("onlineRunningTime: " + script.onlineRunningTime.toString());
|
console.log("onlineRunningTime: " + script.onlineRunningTime);
|
||||||
console.log("Confidence: " + confidence.toString());
|
console.log("Confidence: " + confidence);
|
||||||
|
|
||||||
//A script's offline production will always be at most half of its online production.
|
var totalOfflineProduction = 0;
|
||||||
var production = (1/2) * (script.onlineMoneyMade / script.onlineRunningTime) * timePassed;
|
for (var ip in script.moneyStolenMap) {
|
||||||
production *= confidence;
|
if (script.moneyStolenMap.hasOwnProperty(ip)) {
|
||||||
|
if (script.moneyStolenMap[ip] == 0) {continue;}
|
||||||
|
var serv = AllServers[ip];
|
||||||
|
var production = 0.5 * script.moneyStolenMap[ip] / script.onlineRunningTime * timePassed;
|
||||||
|
production *= confidence;
|
||||||
|
if (production > serv.moneyAvailable) {
|
||||||
|
production = serv.moneyAvailable;
|
||||||
|
}
|
||||||
|
totalOfflineProduction += production;
|
||||||
|
Player.gainMoney(production);
|
||||||
|
console.log(script.filename + " generated $" + production + " while offline by hacking " + serv.hostname);
|
||||||
|
serv.moneyAvailable -= production;
|
||||||
|
if (serv.moneyAvailable < 0) {serv.moneyAvailable = 0;}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//A script's offline production will always be at most half of its online production.
|
||||||
var expGain = (1/2) * (script.onlineExpGained / script.onlineRunningTime) * timePassed;
|
var expGain = (1/2) * (script.onlineExpGained / script.onlineRunningTime) * timePassed;
|
||||||
expGain *= confidence;
|
expGain *= confidence;
|
||||||
|
|
||||||
//Account for production in Player and server)
|
|
||||||
var server = AllServers[script.server];
|
|
||||||
if (production > server.moneyAvailable) {
|
|
||||||
production = server.moneyAvailable;
|
|
||||||
}
|
|
||||||
|
|
||||||
Player.gainMoney(production);
|
|
||||||
Player.gainHackingExp(expGain);
|
Player.gainHackingExp(expGain);
|
||||||
|
|
||||||
server.moneyAvailable -= production;
|
|
||||||
if (server.moneyAvailable < 0) {server.moneyAvailable = 0;}
|
|
||||||
|
|
||||||
//Update script stats
|
//Update script stats
|
||||||
script.offlineMoneyMade += production;
|
script.offlineMoneyMade += totalOfflineProduction;
|
||||||
script.offlineRunningTime += timePassed;
|
script.offlineRunningTime += timePassed;
|
||||||
script.offlineExpGained += expGain;
|
script.offlineExpGained += expGain;
|
||||||
|
|
||||||
//DEBUG
|
//DEBUG
|
||||||
var serverName = AllServers[script.server].hostname;
|
var serverName = AllServers[script.server].hostname;
|
||||||
console.log(script.filename + " from server " + serverName + " generated $" + production.toString() + " while offline");
|
console.log(script.filename + " from server " + serverName + " generated $" + totalOfflineProduction + " TOTAL while offline");
|
||||||
|
}
|
||||||
|
|
||||||
|
//Creates a function that creates a map/dictionary with the IP of each existing server as
|
||||||
|
//a key, and 0 as the value. This is used to keep track of how much money a script
|
||||||
|
//hacks from that server
|
||||||
|
function AllServersToMoneyMap() {
|
||||||
|
for (var ip in AllServers) {
|
||||||
|
if (AllServers.hasOwnProperty(ip)) {
|
||||||
|
this[ip] = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
@ -427,7 +427,7 @@ initForeignServers = function() {
|
|||||||
|
|
||||||
var NectarNightclubServer = new Server();
|
var NectarNightclubServer = new Server();
|
||||||
NectarNightclubServer.init(createRandomIp(), "nectar-net", "Nectar Nightclub Network", true, false, false, false, 2);
|
NectarNightclubServer.init(createRandomIp(), "nectar-net", "Nectar Nightclub Network", true, false, false, false, 2);
|
||||||
NectarNightclubServer.setHackingParameters(20, 6500000, 20, 25);
|
NectarNightclubServer.setHackingParameters(20, 650000, 20, 25);
|
||||||
NectarNightclubServer.setPortProperties(0);
|
NectarNightclubServer.setPortProperties(0);
|
||||||
AddToAllServers(NectarNightclubServer);
|
AddToAllServers(NectarNightclubServer);
|
||||||
|
|
||||||
|
@ -9,6 +9,7 @@ function Reviver(key, value) {
|
|||||||
var ctor;
|
var ctor;
|
||||||
if (value == null) {
|
if (value == null) {
|
||||||
console.log("Reviver WRONGLY called with key: " + key + ", and value: " + value);
|
console.log("Reviver WRONGLY called with key: " + key + ", and value: " + value);
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
if (typeof value === "object" &&
|
if (typeof value === "object" &&
|
||||||
typeof value.ctor === "string" &&
|
typeof value.ctor === "string" &&
|
||||||
|
@ -34,10 +34,10 @@ purchaseRamForHomeBoxCreate = function() {
|
|||||||
var numUpgrades = Math.log2(currentRam);
|
var numUpgrades = Math.log2(currentRam);
|
||||||
|
|
||||||
//Calculate cost
|
//Calculate cost
|
||||||
//Base cost of RAM is 50k per 1GB...but lets have this increase by 10% for every time
|
//Base cost of RAM is 50k per 1GB...but lets have this increase by 21% for every time
|
||||||
//the RAM has been upgraded
|
//the RAM has been upgraded
|
||||||
var cost = currentRam * CONSTANTS.BaseCostFor1GBOfRam;
|
var cost = currentRam * CONSTANTS.BaseCostFor1GBOfRamHome;
|
||||||
var mult = Math.pow(1.1, numUpgrades);
|
var mult = Math.pow(1.21, numUpgrades);
|
||||||
cost = cost * mult;
|
cost = cost * mult;
|
||||||
|
|
||||||
purchaseRamForHomeBoxSetText("Would you like to purchase additional RAM for your home computer? <br><br>" +
|
purchaseRamForHomeBoxSetText("Would you like to purchase additional RAM for your home computer? <br><br>" +
|
||||||
@ -48,9 +48,6 @@ purchaseRamForHomeBoxCreate = function() {
|
|||||||
|
|
||||||
//Clear old event listeners from Confirm button
|
//Clear old event listeners from Confirm button
|
||||||
var newConfirmButton = clearEventListeners("purchase-ram-for-home-box-confirm");
|
var newConfirmButton = clearEventListeners("purchase-ram-for-home-box-confirm");
|
||||||
//var confirmButton = document.getElementById("purchase-ram-for-home-box-confirm");
|
|
||||||
//var newConfirmButton = confirmButton.cloneNode(true);
|
|
||||||
//confirmButton.parentNode.replaceChild(newConfirmButton, confirmButton);
|
|
||||||
newConfirmButton.addEventListener("click", function() {
|
newConfirmButton.addEventListener("click", function() {
|
||||||
purchaseRamForHomeBoxClose();
|
purchaseRamForHomeBoxClose();
|
||||||
purchaseRamForHomeComputer(cost);
|
purchaseRamForHomeComputer(cost);
|
||||||
|
@ -32,9 +32,6 @@ purchaseServerBoxCreate = function(ram, cost) {
|
|||||||
|
|
||||||
//Clear old event listeners from Confirm button
|
//Clear old event listeners from Confirm button
|
||||||
var newConfirmButton = clearEventListeners("purchase-server-box-confirm");
|
var newConfirmButton = clearEventListeners("purchase-server-box-confirm");
|
||||||
//var confirmButton = document.getElementById("purchase-server-box-confirm");
|
|
||||||
//var newConfirmButton = confirmButton.cloneNode(true);
|
|
||||||
//confirmButton.parentNode.replaceChild(newConfirmButton, confirmButton);
|
|
||||||
newConfirmButton.addEventListener("click", function() {
|
newConfirmButton.addEventListener("click", function() {
|
||||||
purchaseServerBoxClose();
|
purchaseServerBoxClose();
|
||||||
purchaseServer(ram, cost);
|
purchaseServer(ram, cost);
|
||||||
|
Loading…
Reference in New Issue
Block a user