diff --git a/css/menupages.css b/css/menupages.css index ed7b586d4..dc1236e30 100644 --- a/css/menupages.css +++ b/css/menupages.css @@ -166,6 +166,7 @@ /* Augmentations */ #augmentations-container { + color: #66ff33; position: fixed; padding-top: 10px; padding-left: 10px; @@ -176,10 +177,27 @@ /* Tutorial */ #tutorial-container { + color: #66ff33; position: fixed; padding-top: 10px; padding-left: 10px; height: 100%; margin-left: 10%; width: 99%; +} + +/* Location */ +#location-container { + color: #66ff33; + position: fixed; + padding-top: 10px; + padding-left: 10px; + padding: 20px; + height: 100%; + margin-left: 10%; + width: 99%; +} + +#location-container * { + margin: 10px 5px 10px 5px; } \ No newline at end of file diff --git a/css/styles.css b/css/styles.css index 8eb8a09c3..963807a48 100644 --- a/css/styles.css +++ b/css/styles.css @@ -53,6 +53,7 @@ h1 { .mainmenu>li a.active { background-color: #555; color: white; + } /* Make html links ("a" elements) nice looking buttons with this class */ diff --git a/index.html b/index.html index 41736b810..5cc0110b1 100644 --- a/index.html +++ b/index.html @@ -350,7 +350,7 @@

-

Apply for Software Job Apply for IT Job diff --git a/src/Company.js b/src/Company.js index c111ffff6..73d222680 100644 --- a/src/Company.js +++ b/src/Company.js @@ -1,24 +1,30 @@ //Netburner Company class -// Note: Company Positions can be loaded every time with init() but Company class needs -// to be saved/loaded from localStorage +// Note: Company Positions can be loaded every time with init() but Company class needs +// to be saved/loaded from localStorage function Company() { - this.companyName = ""; + this.companyName = ""; this.info = ""; - this.companyPositions = []; //Names (only name, not object) of all company positions - this.salaryMultiplier = 1; //Multiplier for base salary - this.expMultiplier = 1; //Multiplier for base exp gain + this.companyPositions = []; //Names (only name, not object) of all company positions + this.salaryMultiplier = 1; //Multiplier for base salary + this.expMultiplier = 1; //Multiplier for base exp gain + + //The additional levels you need in the relevant stat to qualify for a job. + //E.g the offset for a megacorporation will be high, let's say 200, so the + //stat level you'd need to get an intern job would be 200 instead of 1. + this.jobStatReqOffset = 1; //Player-related properties for company - this.isPlayerEmployed = false; - this.playerPosition = ""; //Name (only name, not object) of the current position player holds - this.playerReputation = 0; //"Reputation" within company, gain reputation by working for company - + this.isPlayerEmployed = false; + this.playerPosition = ""; //Name (only name, not object) of the current position player holds + this.playerReputation = 0; //"Reputation" within company, gain reputation by working for company + }; -Company.prototype.init = function(name, salaryMult, expMult) { - this.companyName = name; - this.salaryMultiplier = salaryMult; - this.expMultiplier = expMult; +Company.prototype.init = function(name, salaryMult, expMult, jobStatReqOffset) { + this.companyName = name; + this.salaryMultiplier = salaryMult; + this.expMultiplier = expMult; + this.jobStatReqOffset = jobStatReqOffset; } Company.prototype.setInfo = function(inf) { @@ -26,13 +32,13 @@ Company.prototype.setInfo = function(inf) { } Company.prototype.addPosition = function(pos) { - this.companyPositions.push(pos.positionName); //Company object holds only name of positions + this.companyPositions.push(pos.positionName); //Company object holds only name of positions } Company.prototype.addPositions = function(positions) { - for (var i = 0; i < positions.length; i++) { - this.addPosition(positions[i]); - } + for (var i = 0; i < positions.length; i++) { + this.addPosition(positions[i]); + } } Company.prototype.hasPosition = function(pos) { @@ -45,11 +51,11 @@ Company.prototype.hasPosition = function(pos) { } Company.prototype.toJSON = function() { - return Generic_toJSON("Company", this); + return Generic_toJSON("Company", this); } Company.fromJSON = function(value) { - return Generic_fromJSON(Company, value.data); + return Generic_fromJSON(Company, value.data); } Reviver.constructors.Company = Company; @@ -62,55 +68,55 @@ function CompanyPosition(name, reqHack, reqStr, reqDef, reqDex, reqAgi, reqCha, this.requiredDefense = reqDef; this.requiredDexterity = reqDex; this.requiredAgility = reqAgi; - this.requiredCharisma = reqCha; - this.requiredReputation = reqRep; - - //Base salary for a position. This will be multiplied by a company-specific multiplier. Better companies will have - //higher multipliers. - // - //NOTE: This salary denotes the $ gained every loop (200 ms) - this.baseSalary = salary; + this.requiredCharisma = reqCha; + this.requiredReputation = reqRep; + + //Base salary for a position. This will be multiplied by a company-specific multiplier. Better companies will have + //higher multipliers. + // + //NOTE: This salary denotes the $ gained every loop (200 ms) + this.baseSalary = salary; }; //Set the parameters that are used to determine how good/effective the Player is at a job. //The Player's "effectiveness" at a job determines how much reputation he gains when he works // //NOTE: These parameters should total to 100, such that each parameter represents a "weighting" of how -// important that stat/skill is for the job +// important that stat/skill is for the job CompanyPosition.prototype.setPerformanceParameters = function(hackEff, strEff, defEff, dexEff, agiEff, chaEff) { - if (hackEff + strEff + defEff + dexEff + agiEff + chaEff != 100) { - console.log("CompanyPosition.setPerformanceParameters() arguments do not total to 100"); - return; - } - this.hackingEffectiveness = hackEff; - this.strengthEffectiveness = strEff; - this.defenseEffectiveness = defEff; - this.dexterityEffectiveness = dexEff; - this.agilityEffectiveness = agiEff; - this.charismaEffectiveness = chaEff; + if (hackEff + strEff + defEff + dexEff + agiEff + chaEff != 100) { + console.log("CompanyPosition.setPerformanceParameters() arguments do not total to 100"); + return; + } + this.hackingEffectiveness = hackEff; + this.strengthEffectiveness = strEff; + this.defenseEffectiveness = defEff; + this.dexterityEffectiveness = dexEff; + this.agilityEffectiveness = agiEff; + this.charismaEffectiveness = chaEff; } //Set the stat/skill experience a Player should gain for working at a CompanyPosition. The experience is per game loop (200 ms) //These will be constant for a single position, but is affected by a company-specific multiplier CompanyPosition.prototype.setExperienceGains = function(hack, str, def, dex, agi, cha) { - this.hackingExpGain = hack; - this.strengthExpGain = str; - this.defenseExpGain = def; - this.dexterityExpGain = dex; - this.agilityExpGain = agi; - this.charismaExpGain = cha; + this.hackingExpGain = hack; + this.strengthExpGain = str; + this.defenseExpGain = def; + this.dexterityExpGain = dex; + this.agilityExpGain = agi; + this.charismaExpGain = cha; } //Calculate a player's effectiveness at a certain job. Returns the amount of job reputation //that should be gained every game loop (200 ms) CompanyPosition.prototype.calculateJobPerformance = function(hacking, str, def, dex, agi, cha) { - var hackRatio = this.hackingEffectiveness * hacking / CONSTANTS.MaxSkillLevel; - var strRatio = this.strengthEffectiveness * str / CONSTANTS.MaxSkillLevel; - var defRatio = this.defenseEffectiveness * def / CONSTANTS.MaxSkillLevel; - var dexRatio = this.dexterityEffectiveness * dex / CONSTANTS.MaxSkillLevel; - var agiRatio = this.agilityEffectiveness * agi / CONSTANTS.MaxSkillLevel; - var chaRatio = this.charismaEffectiveness * cha / CONSTANTS.MaxSkillLevel; - return (hackRatio + strRatio + defRatio + dexRatio + agiRatio + chaRatio) / 100; + var hackRatio = this.hackingEffectiveness * hacking / CONSTANTS.MaxSkillLevel; + var strRatio = this.strengthEffectiveness * str / CONSTANTS.MaxSkillLevel; + var defRatio = this.defenseEffectiveness * def / CONSTANTS.MaxSkillLevel; + var dexRatio = this.dexterityEffectiveness * dex / CONSTANTS.MaxSkillLevel; + var agiRatio = this.agilityEffectiveness * agi / CONSTANTS.MaxSkillLevel; + var chaRatio = this.charismaEffectiveness * cha / CONSTANTS.MaxSkillLevel; + return (hackRatio + strRatio + defRatio + dexRatio + agiRatio + chaRatio) / 100; } CompanyPosition.prototype.isSoftwareJob = function() { @@ -184,567 +190,667 @@ CompanyPosition.prototype.isAgentJob = function() { } CompanyPositions = { - //Constructor: CompanyPosition(name, reqHack, reqStr, reqDef, reqDex, reqAgi, reqCha, reqRep, salary) + //Constructor: CompanyPosition(name, reqHack, reqStr, reqDef, reqDex, reqAgi, reqCha, reqRep, salary) - //Software - SoftwareIntern: new CompanyPosition("Software Engineering Intern", 1, 1, 1, 1, 1, 1, 0, 1), - JuniorDev: new CompanyPosition("Junior Software Engineer", 50, 1, 1, 1, 1, 1, 9000, 5), - SeniorDev: new CompanyPosition("Senior Software Engineer", 250, 1, 1, 1, 1, 50, 36000, 12), - LeadDev: new CompanyPosition("Lead Software Developer", 400, 1, 1, 1, 1, 100, 72000, 15), - - //IT - ITIntern: new CompanyPosition("IT Intern", 1, 1, 1, 1, 1, 1, 0, .8), - ITAnalyst: new CompanyPosition("IT Analyst", 25, 1, 1, 1, 1, 1, 9000, 2), - ITManager: new CompanyPosition("IT Manager", 150, 1, 1, 1, 1, 50, 36000, 8), - SysAdmin: new CompanyPosition("Systems Administrator", 250, 1, 1, 1, 1, 75, 72000, 13), - SecurityEngineer: new CompanyPosition("Security Engineer", 150, 1, 1, 1, 1, 25, 36000, 10), - NetworkEngineer: new CompanyPosition("Network Engineer", 150, 1, 1, 1, 1, 25, 36000, 10), - NetworkAdministrator: new CompanyPosition("Network Administrator", 250, 1, 1, 1, 1, 75, 72000, 12), - - //Technology management - HeadOfSoftware: new CompanyPosition("Head of Software", 500, 1, 1, 1, 1, 250, 108000, 30), - HeadOfEngineering: new CompanyPosition("Head of Engineering", 500, 1, 1, 1, 1, 250, 10800, 30), - VicePresident: new CompanyPosition("Vice President of Technology", 600, 1, 1, 1, 1, 400, 144000, 40), - CTO: new CompanyPosition("Chief Technology Officer", 750, 1, 1, 1, 1, 500, 216000, 50), - - //Business - BusinessIntern: new CompanyPosition("Business Intern", 1, 1, 1, 1, 1, 1, 0, 1), - BusinessAnalyst: new CompanyPosition("Business Analyst", 5, 1, 1, 1, 1, 50, 9000, 5), - BusinessManager: new CompanyPosition("Business Manager", 50, 1, 1, 1, 1, 100, 36000, 12), - OperationsManager: new CompanyPosition("Operations Manager", 50, 1, 1, 1, 1, 200, 72000, 20), - CFO: new CompanyPosition("Chief Financial Officer", 75, 1, 1, 1, 1, 500, 108000, 50), - CEO: new CompanyPosition("Chief Executive Officer", 100, 1, 1, 1, 1, 750, 216000, 100), - - //Non-tech/management jobs - Waiter: new CompanyPosition("Waiter", 1, 1, 1, 1, 1, 1, 0, .5), - Employee: new CompanyPosition("Employee", 1, 1, 1, 1, 1, 1, 0, .5), - SecurityGuard: new CompanyPosition("Security Guard", 1, 50, 50, 50, 50, 0, 3), - PoliceOfficer: new CompanyPosition("Police Officer", 10, 100, 100, 100, 100, 9000, 4), - SecurityOfficer: new CompanyPosition("Security Officer", 25, 150, 150, 150, 150, 9000, 6), - SecuritySupervisor: new CompanyPosition("Security Supervisor", 25, 250, 250, 250, 250, 36000, 12), - HeadOfSecurity: new CompanyPosition("Head of Security", 50, 500, 500, 500, 500, 72000, 20), - FieldAgent: new CompanyPosition("Field Agent", 100, 100, 100, 100, 100, 9000, 4), - SecretAgent: new CompanyPosition("Secret Agent", 200, 250, 250, 250, 250, 36000, 10), - SpecialOperative: new CompanyPosition("Special Operative", 250, 500, 500, 500, 500, 108000, 20), - - init: function() { - //Argument order: hack, str, def, dex, agi, cha - //Software - CompanyPositions.SoftwareIntern.setPerformanceParameters(90, 0, 0, 0, 0, 10); - CompanyPositions.SoftwareIntern.setExperienceGains(.1, 0, 0, 0, 0, .02); - CompanyPositions.JuniorDev.setPerformanceParameters(85, 0, 0, 0, 0, 15); - CompanyPositions.JuniorDev.setExperienceGains(.2, 0, 0, 0, 0, .04); - CompanyPositions.SeniorDev.setPerformanceParameters(75, 0, 0, 0, 0, 25); - CompanyPositions.SeniorDev.setExperienceGains(.4, 0, 0, 0, 0, .08); - CompanyPositions.LeadDev.setPerformanceParameters(70, 0, 0, 0, 0, 30); - CompanyPositions.LeadDev.setExperienceGains(.5, 0, 0, 0, 0, .1); - - //Security - CompanyPositions.ITIntern.setPerformanceParameters(90, 0, 0, 0, 0, 10); - CompanyPositions.ITIntern.setExperienceGains(.05, 0, 0, 0, 0, .01); - CompanyPositions.ITAnalyst.setPerformanceParameters(85, 0, 0, 0, 0, 15); - CompanyPositions.ITAnalyst.setExperienceGains(.15, 0, 0, 0, 0, .02); - CompanyPositions.ITManager.setPerformanceParameters(75, 0, 0, 0, 0, 25); - CompanyPositions.ITManager.setExperienceGains(.4, 0, 0, 0, 0, .1); - CompanyPositions.SysAdmin.setPerformanceParameters(80, 0, 0, 0, 0, 20); - CompanyPositions.SysAdmin.setExperienceGains(.5, 0, 0, 0, 0, .05); - CompanyPositions.SecurityEngineer.setPerformanceParameters(85, 0, 0, 0, 0, 15); - CompanyPositions.SecurityEngineer.setExperienceGains(0.4, 0, 0, 0, 0, .05); - CompanyPositions.NetworkEngineer.setPerformanceParameters(85, 0, 0, 0, 0, 15); - CompanyPositions.NetworkEngineer.setExperienceGains(0.4, 0, 0, 0, 0, .05); - CompanyPositions.NetworkAdministrator.setPerformanceParameters(75, 0, 0, 0, 0, 25); - CompanyPositions.NetworkAdministrator.setExperienceGains(0.5, 0, 0, 0, 0, .1); - - //Technology management - CompanyPositions.HeadOfSoftware.setPerformanceParameters(65, 0, 0, 0, 0, 35); - CompanyPositions.HeadOfSoftware.setExperienceGains(1, 0, 0, 0, 0, .5); - CompanyPositions.HeadOfEngineering.setPerformanceParameters(60, 0, 0, 0, 0, 40); - CompanyPositions.HeadOfEngineering.setExperienceGains(1.1, 0, 0, 0, 0, .5); - CompanyPositions.VicePresident.setPerformanceParameters(60, 0, 0, 0, 0, 40); - CompanyPositions.VicePresident.setExperienceGains(1.2, 0, 0, 0, 0, .6); - CompanyPositions.CTO.setPerformanceParameters(50, 0, 0, 0, 0, 50); - CompanyPositions.CTO.setExperienceGains(1.5, 0, 0, 0, 1); - - //Business - CompanyPositions.BusinessIntern.setPerformanceParameters(10, 0, 0, 0, 0, 90); - CompanyPositions.BusinessIntern.setExperienceGains(.01, 0, 0, 0, 0, .1); - CompanyPositions.BusinessAnalyst.setPerformanceParameters(20, 0, 0, 0, 0, 80); - CompanyPositions.BusinessAnalyst.setExperienceGains(.02, 0, 0, 0, 0, .2); - CompanyPositions.BusinessManager.setPerformanceParameters(15, 0, 0, 0, 0, 85); - CompanyPositions.BusinessManager.setExperienceGains(.02, 0, 0, 0, 0, .4); - CompanyPositions.OperationsManager.setPerformanceParameters(15, 0, 0, 0, 0, 85); - CompanyPositions.OperationsManager.setExperienceGains(.02, 0, 0, 0, 0, .4); - CompanyPositions.CFO.setPerformanceParameters(10, 0, 0, 0, 0, 90); - CompanyPositions.CFO.setExperienceGains(.05, 0, 0, 0, 0, 1); - CompanyPositions.CEO.setPerformanceParameters(10, 0, 0, 0, 0, 90); - CompanyPositions.CEO.setExperienceGains(.1, 0, 0, 0, 0, 1.5); - - //Non-tech/management jobs - //TODO These parameters might need to be balanced - CompanyPositions.Waiter.setPerformanceParameters(0, 10, 0, 10, 10, 70); - CompanyPositions.Waiter.setExperienceGains(0, .01, .01, .01, .01, .05); - CompanyPositions.Employee.setPerformanceParameters(0, 10, 0, 10, 10, 70); - CompanyPositions.Employee.setExperienceGains(0, .01, .01, .01, .01, .05); - CompanyPositions.SecurityGuard.setPerformanceParameters(5, 20, 20, 20, 20, 15); - CompanyPositions.SecurityGuard.setExperienceGains(.01, .02, .02, .02, .02, .01); - CompanyPositions.PoliceOfficer.setPerformanceParameters(5, 20, 20, 20, 20, 15); - CompanyPositions.PoliceOfficer.setExperienceGains(.01, .04, .04, .04, .04, .02); - CompanyPositions.SecurityOfficer.setPerformanceParameters(10, 20, 20, 20, 20, 10); - CompanyPositions.SecurityOfficer.setExperienceGains(.02, .06, .06, .06, .06, .04); - CompanyPositions.SecuritySupervisor.setPerformanceParameters(10, 15, 15, 15, 15, 30); - CompanyPositions.SecuritySupervisor.setExperienceGains(.02, .06, .06, .06, .06, .08); - CompanyPositions.HeadOfSecurity.setPerformanceParameters(10, 15, 15, 15, 15, 30); - CompanyPositions.HeadOfSecurity.setExperienceGains(.05, .1, .1, .1, .1, .1); - CompanyPositions.FieldAgent.setPerformanceParameters(10, 15, 15, 20, 20, 20); - CompanyPositions.FieldAgent.setExperienceGains(.04, .06, .06, .06, .06, .04); - CompanyPositions.SecretAgent.setPerformanceParameters(15, 15, 15, 20, 20, 15); - CompanyPositions.SecretAgent.setExperienceGains(.08, .1, .1, .1, .1, .08); - CompanyPositions.SpecialOperative.setPerformanceParameters(15, 15, 15, 20, 20, 15); - CompanyPositions.SpecialOperative.setExperienceGains(.12, .15, .15, .15, .15, .12); - } + //Software + SoftwareIntern: new CompanyPosition("Software Engineering Intern", 1, 1, 1, 1, 1, 1, 0, 1), + JuniorDev: new CompanyPosition("Junior Software Engineer", 50, 1, 1, 1, 1, 1, 9000, 5), + SeniorDev: new CompanyPosition("Senior Software Engineer", 250, 1, 1, 1, 1, 50, 36000, 12), + LeadDev: new CompanyPosition("Lead Software Developer", 400, 1, 1, 1, 1, 100, 72000, 15), + + //IT + ITIntern: new CompanyPosition("IT Intern", 1, 1, 1, 1, 1, 1, 0, .8), + ITAnalyst: new CompanyPosition("IT Analyst", 25, 1, 1, 1, 1, 1, 9000, 2), + ITManager: new CompanyPosition("IT Manager", 150, 1, 1, 1, 1, 50, 36000, 8), + SysAdmin: new CompanyPosition("Systems Administrator", 250, 1, 1, 1, 1, 75, 72000, 13), + SecurityEngineer: new CompanyPosition("Security Engineer", 150, 1, 1, 1, 1, 25, 36000, 10), + NetworkEngineer: new CompanyPosition("Network Engineer", 150, 1, 1, 1, 1, 25, 36000, 10), + NetworkAdministrator: new CompanyPosition("Network Administrator", 250, 1, 1, 1, 1, 75, 72000, 12), + + //Technology management + HeadOfSoftware: new CompanyPosition("Head of Software", 500, 1, 1, 1, 1, 250, 108000, 30), + HeadOfEngineering: new CompanyPosition("Head of Engineering", 500, 1, 1, 1, 1, 250, 10800, 30), + VicePresident: new CompanyPosition("Vice President of Technology", 600, 1, 1, 1, 1, 400, 144000, 40), + CTO: new CompanyPosition("Chief Technology Officer", 750, 1, 1, 1, 1, 500, 216000, 50), + + //Business + BusinessIntern: new CompanyPosition("Business Intern", 1, 1, 1, 1, 1, 1, 0, 1), + BusinessAnalyst: new CompanyPosition("Business Analyst", 5, 1, 1, 1, 1, 50, 9000, 5), + BusinessManager: new CompanyPosition("Business Manager", 50, 1, 1, 1, 1, 100, 36000, 12), + OperationsManager: new CompanyPosition("Operations Manager", 50, 1, 1, 1, 1, 200, 72000, 20), + CFO: new CompanyPosition("Chief Financial Officer", 75, 1, 1, 1, 1, 500, 108000, 50), + CEO: new CompanyPosition("Chief Executive Officer", 100, 1, 1, 1, 1, 750, 216000, 100), + + //Non-tech/management jobs + Waiter: new CompanyPosition("Waiter", 1, 1, 1, 1, 1, 1, 0, .5), + Employee: new CompanyPosition("Employee", 1, 1, 1, 1, 1, 1, 0, .5), + PoliceOfficer: new CompanyPosition("Police Officer", 10, 100, 100, 100, 100, 9000, 4), + PoliceChief: new CompanyPosition("Police Chief", 100, 300, 300, 300, 300, 18000, 10), + SecurityGuard: new CompanyPosition("Security Guard", 1, 50, 50, 50, 50, 0, 3), + SecurityOfficer: new CompanyPosition("Security Officer", 25, 150, 150, 150, 150, 9000, 6), + SecuritySupervisor: new CompanyPosition("Security Supervisor", 25, 250, 250, 250, 250, 36000, 12), + HeadOfSecurity: new CompanyPosition("Head of Security", 50, 500, 500, 500, 500, 72000, 20), + FieldAgent: new CompanyPosition("Field Agent", 100, 100, 100, 100, 100, 9000, 4), + SecretAgent: new CompanyPosition("Secret Agent", 200, 250, 250, 250, 250, 36000, 10), + SpecialOperative: new CompanyPosition("Special Operative", 250, 500, 500, 500, 500, 108000, 20), + + init: function() { + //Argument order: hack, str, def, dex, agi, cha + //Software + CompanyPositions.SoftwareIntern.setPerformanceParameters(90, 0, 0, 0, 0, 10); + CompanyPositions.SoftwareIntern.setExperienceGains(.1, 0, 0, 0, 0, .02); + CompanyPositions.JuniorDev.setPerformanceParameters(85, 0, 0, 0, 0, 15); + CompanyPositions.JuniorDev.setExperienceGains(.2, 0, 0, 0, 0, .04); + CompanyPositions.SeniorDev.setPerformanceParameters(75, 0, 0, 0, 0, 25); + CompanyPositions.SeniorDev.setExperienceGains(.4, 0, 0, 0, 0, .08); + CompanyPositions.LeadDev.setPerformanceParameters(70, 0, 0, 0, 0, 30); + CompanyPositions.LeadDev.setExperienceGains(.5, 0, 0, 0, 0, .1); + + //Security + CompanyPositions.ITIntern.setPerformanceParameters(90, 0, 0, 0, 0, 10); + CompanyPositions.ITIntern.setExperienceGains(.05, 0, 0, 0, 0, .01); + CompanyPositions.ITAnalyst.setPerformanceParameters(85, 0, 0, 0, 0, 15); + CompanyPositions.ITAnalyst.setExperienceGains(.15, 0, 0, 0, 0, .02); + CompanyPositions.ITManager.setPerformanceParameters(75, 0, 0, 0, 0, 25); + CompanyPositions.ITManager.setExperienceGains(.4, 0, 0, 0, 0, .1); + CompanyPositions.SysAdmin.setPerformanceParameters(80, 0, 0, 0, 0, 20); + CompanyPositions.SysAdmin.setExperienceGains(.5, 0, 0, 0, 0, .05); + CompanyPositions.SecurityEngineer.setPerformanceParameters(85, 0, 0, 0, 0, 15); + CompanyPositions.SecurityEngineer.setExperienceGains(0.4, 0, 0, 0, 0, .05); + CompanyPositions.NetworkEngineer.setPerformanceParameters(85, 0, 0, 0, 0, 15); + CompanyPositions.NetworkEngineer.setExperienceGains(0.4, 0, 0, 0, 0, .05); + CompanyPositions.NetworkAdministrator.setPerformanceParameters(75, 0, 0, 0, 0, 25); + CompanyPositions.NetworkAdministrator.setExperienceGains(0.5, 0, 0, 0, 0, .1); + + //Technology management + CompanyPositions.HeadOfSoftware.setPerformanceParameters(65, 0, 0, 0, 0, 35); + CompanyPositions.HeadOfSoftware.setExperienceGains(1, 0, 0, 0, 0, .5); + CompanyPositions.HeadOfEngineering.setPerformanceParameters(60, 0, 0, 0, 0, 40); + CompanyPositions.HeadOfEngineering.setExperienceGains(1.1, 0, 0, 0, 0, .5); + CompanyPositions.VicePresident.setPerformanceParameters(60, 0, 0, 0, 0, 40); + CompanyPositions.VicePresident.setExperienceGains(1.2, 0, 0, 0, 0, .6); + CompanyPositions.CTO.setPerformanceParameters(50, 0, 0, 0, 0, 50); + CompanyPositions.CTO.setExperienceGains(1.5, 0, 0, 0, 1); + + //Business + CompanyPositions.BusinessIntern.setPerformanceParameters(10, 0, 0, 0, 0, 90); + CompanyPositions.BusinessIntern.setExperienceGains(.01, 0, 0, 0, 0, .1); + CompanyPositions.BusinessAnalyst.setPerformanceParameters(20, 0, 0, 0, 0, 80); + CompanyPositions.BusinessAnalyst.setExperienceGains(.02, 0, 0, 0, 0, .2); + CompanyPositions.BusinessManager.setPerformanceParameters(15, 0, 0, 0, 0, 85); + CompanyPositions.BusinessManager.setExperienceGains(.02, 0, 0, 0, 0, .4); + CompanyPositions.OperationsManager.setPerformanceParameters(15, 0, 0, 0, 0, 85); + CompanyPositions.OperationsManager.setExperienceGains(.02, 0, 0, 0, 0, .4); + CompanyPositions.CFO.setPerformanceParameters(10, 0, 0, 0, 0, 90); + CompanyPositions.CFO.setExperienceGains(.05, 0, 0, 0, 0, 1); + CompanyPositions.CEO.setPerformanceParameters(10, 0, 0, 0, 0, 90); + CompanyPositions.CEO.setExperienceGains(.1, 0, 0, 0, 0, 1.5); + + //Non-tech/management jobs + //TODO These parameters might need to be balanced + CompanyPositions.Waiter.setPerformanceParameters(0, 10, 0, 10, 10, 70); + CompanyPositions.Waiter.setExperienceGains(0, .01, .01, .01, .01, .05); + CompanyPositions.Employee.setPerformanceParameters(0, 10, 0, 10, 10, 70); + CompanyPositions.Employee.setExperienceGains(0, .01, .01, .01, .01, .05); + CompanyPositions.SecurityGuard.setPerformanceParameters(5, 20, 20, 20, 20, 15); + CompanyPositions.SecurityGuard.setExperienceGains(.01, .02, .02, .02, .02, .01); + CompanyPositions.PoliceOfficer.setPerformanceParameters(5, 20, 20, 20, 20, 15); + CompanyPositions.PoliceOfficer.setExperienceGains(.01, .04, .04, .04, .04, .02); + CompanyPositions.PoliceChief.setPerformanceParameters(5, 20, 20, 20, 20, 15); + CompanyPositions.PoliceChief.setExperienceGains(.02, .06, .06, .06, .06, .05); + CompanyPositions.SecurityOfficer.setPerformanceParameters(10, 20, 20, 20, 20, 10); + CompanyPositions.SecurityOfficer.setExperienceGains(.02, .06, .06, .06, .06, .04); + CompanyPositions.SecuritySupervisor.setPerformanceParameters(10, 15, 15, 15, 15, 30); + CompanyPositions.SecuritySupervisor.setExperienceGains(.02, .06, .06, .06, .06, .08); + CompanyPositions.HeadOfSecurity.setPerformanceParameters(10, 15, 15, 15, 15, 30); + CompanyPositions.HeadOfSecurity.setExperienceGains(.05, .1, .1, .1, .1, .1); + CompanyPositions.FieldAgent.setPerformanceParameters(10, 15, 15, 20, 20, 20); + CompanyPositions.FieldAgent.setExperienceGains(.04, .06, .06, .06, .06, .04); + CompanyPositions.SecretAgent.setPerformanceParameters(15, 15, 15, 20, 20, 15); + CompanyPositions.SecretAgent.setExperienceGains(.08, .1, .1, .1, .1, .08); + CompanyPositions.SpecialOperative.setPerformanceParameters(15, 15, 15, 20, 20, 15); + CompanyPositions.SpecialOperative.setExperienceGains(.12, .15, .15, .15, .15, .12); + } +} + +//Returns the next highest position in the company for the relevant career/field +//I.E returns what your next job would be if you qualify for a promotion +getNextCompanyPosition = function(currPos) { + //Software + if (currPos.positionName == CompanyPositions.SoftwareIntern.positionName) { + return CompanyPositions.JuniorDev; + } + if (currPos.positionName == CompanyPositions.JuniorDev.positionName) { + return CompanyPositions.SeniorDev; + } + if (currPos.positionName == CompanyPositions.SeniorDev.positionName) { + return CompanyPositions.LeadDev; + } + if (currPos.positionName == CompanyPositions.LeadDev.positionname) { + return CompanyPositions.HeadOfSoftware; + } + + //IT + if (currPos.positionName == CompanyPositions.ITIntern.positionName) { + return CompanyPositions.ITAnalyst; + } + if (currPos.positionName == CompanyPositions.ITAnalyst.positionName) { + return CompanyPositions.ITManager; + } + if (currPos.positionName == CompanyPositions.ITManager.positionName) { + return CompanyPositions.SysAdmin; + } + if (currPos.positionName == CompanyPositions.SysAdmin.positionName) { + return CompanyPositions.HeadOfEngineering; + } + + //Security/Network Engineer + if (currPos.positionName == CompanyPositions.SecurityEngineer.positionName) { + return CompanyPositions.HeadOfEngineering; + } + if (currPos.positionName == CompanyPositions.NetworkEngineer.positionName) { + return CompanyPositions.NetworkAdministrator; + } + if (currPos.positionName == CompanyPositions.NetworkAdministrator.positionName) { + return CompanyPositions.HeadOfEngineering; + } + + //Technology management + if (currPos.positionName == CompanyPositions.HeadOfSoftware.positionName) { + return CompanyPositions.HeadOfEngineering; + } + if (currPos.positionName == CompanyPositions.HeadOfEngineering.positionName) { + return CompanyPositions.VicePresident; + } + if (currPos.positionName == CompanyPositions.VicePresident.positionName) { + return CompanyPositions.CTO; + } + + //Business + if (currPos.positionName == CompanyPositions.BusinessIntern.positionName) { + return CompanyPositions.BusinessAnalyst; + } + if (currPos.positionName == CompanyPositions.BusinessAnalyst.positionName) { + return CompanyPositions.BusinessManager; + } + if (currPos.positionName == CompanyPositions.BusinessManager.positionName) { + return CompanyPositions.OperationsManager; + } + if (currPos.positionName == CompanyPositions.OperationsManager.positionName) { + return CompanyPositions.CFO; + } + if (currPos.positionName == CompanyPositions.CFO.positionName) { + return CompanyPositions.CEO; + } + + //Police + if (currPos.positionName == CompanyPositions.PoliceOffier.positionName) { + return CompanyPositions.PoliceChief; + } + + //Security + if (currPos.positionName == CompanyPositions.SecurityGuard.positionName) { + return CompanyPositions.SecurityOfficer; + } + if (currPos.positionName == CompanyPositions.SecurityOfficer.positionName) { + return CompanyPositions.SecuritySupervisor; + } + if (currPos.positionName == CompanyPositions.SecuritySupervisor.positionName) { + return CompanyPositions.HeadOfSecurity; + } + + //Agent + if (currPos.positionName == CompanyPositions.FieldAgent.positionName) { + return CompanyPositions.SecretAgent; + } + if (currPos.positionName == CompanyPositions.SecretAgent.positionName) { + return CompanyPositions.SpecialOperative; + } + + return null; } /* Initialize all companies. Only called when creating new game. Otherwise companies are * usually loaded from localStorage */ initCompanies = function() { - /* Companies that also have servers */ - //Megacorporations - var ECorp = new Company(); - ECorp.init("ECorp", 3.0, 3.0); - ECorp.addPositions([ - CompanyPositions.SoftwareIntern, CompanyPositions.ITIntern, CompanyPositions.BusinessIntern, - CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, CompanyPositions.LeadDev, - CompanyPositions.ITAnalyst, CompanyPositions.ITManager, CompanyPositions.SysAdmin, - CompanyPositions.SecurityEngineer, CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, - CompanyPositions.HeadOfSoftware, CompanyPositions.HeadOfEngineering, - CompanyPositions.VicePresident, CompanyPositions.CTO, CompanyPositions.BusinessAnalyst, - CompanyPositions.BusinessManager, CompanyPositions.OperationsManager, CompanyPositions.CFO, - CompanyPositions.CEO, CompanyPositions.SecurityGuard, CompanyPositions.SecurityOfficer, - CompanyPositions.SecuritySupervisor, CompanyPositions.HeadOfSecurity]); - AddToCompanies(ECorp); - - var MegaCorp = new Company(); - MegaCorp.init("MegaCorp", 3.0, 3.0); - MegaCorp.addPositions([ - CompanyPositions.SoftwareIntern, CompanyPositions.ITIntern, CompanyPositions.BusinessIntern, - CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, CompanyPositions.LeadDev, - CompanyPositions.ITAnalyst, CompanyPositions.ITManager, CompanyPositions.SysAdmin, - CompanyPositions.SecurityEngineer, CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, - CompanyPositions.HeadOfSoftware, CompanyPositions.HeadOfEngineering, - CompanyPositions.VicePresident, CompanyPositions.CTO, CompanyPositions.BusinessAnalyst, - CompanyPositions.BusinessManager, CompanyPositions.OperationsManager, CompanyPositions.CFO, - CompanyPositions.CEO, CompanyPositions.SecurityGuard, CompanyPositions.SecurityOfficer, - CompanyPositions.SecuritySupervisor, CompanyPositions.HeadOfSecurity]); - AddToCompanies(MegaCorp); - - var BachmanAndAssociates = new Company(); - BachmanAndAssociates.init("Bachman & Associates", 2.6, 2.6); - BachmanAndAssociates.addPositions([ - CompanyPositions.SoftwareIntern, CompanyPositions.ITIntern, CompanyPositions.BusinessIntern, - CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, CompanyPositions.LeadDev, - CompanyPositions.ITAnalyst, CompanyPositions.ITManager, CompanyPositions.SysAdmin, - CompanyPositions.SecurityEngineer, CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, - CompanyPositions.HeadOfSoftware, CompanyPositions.HeadOfEngineering, - CompanyPositions.VicePresident, CompanyPositions.CTO, CompanyPositions.BusinessAnalyst, - CompanyPositions.BusinessManager, CompanyPositions.OperationsManager, CompanyPositions.CFO, - CompanyPositions.CEO, CompanyPositions.SecurityGuard, CompanyPositions.SecurityOfficer, - CompanyPositions.SecuritySupervisor, CompanyPositions.HeadOfSecurity]); - AddToCompanies(BachmanAndAssociates); - - var BladeIndustries = new Company(); - BladeIndustries.init("Blade Industries", 2.75, 2.75); - BladeIndustries.addPositions([ - CompanyPositions.SoftwareIntern, CompanyPositions.ITIntern, CompanyPositions.BusinessIntern, - CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, CompanyPositions.LeadDev, - CompanyPositions.ITAnalyst, CompanyPositions.ITManager, CompanyPositions.SysAdmin, - CompanyPositions.SecurityEngineer, CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, - CompanyPositions.HeadOfSoftware, CompanyPositions.HeadOfEngineering, - CompanyPositions.VicePresident, CompanyPositions.CTO, CompanyPositions.BusinessAnalyst, - CompanyPositions.BusinessManager, CompanyPositions.OperationsManager, CompanyPositions.CFO, - CompanyPositions.CEO, CompanyPositions.SecurityGuard, CompanyPositions.SecurityOfficer, - CompanyPositions.SecuritySupervisor, CompanyPositions.HeadOfSecurity]); - AddToCompanies(BladeIndustries); - - var NWO = new Company(); - NWO.init("NWO", 2.75, 2.75); - NWO.addPositions([ - CompanyPositions.SoftwareIntern, CompanyPositions.ITIntern, CompanyPositions.BusinessIntern, - CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, CompanyPositions.LeadDev, - CompanyPositions.ITAnalyst, CompanyPositions.ITManager, CompanyPositions.SysAdmin, - CompanyPositions.SecurityEngineer, CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, - CompanyPositions.HeadOfSoftware, CompanyPositions.HeadOfEngineering, - CompanyPositions.VicePresident, CompanyPositions.CTO, CompanyPositions.BusinessAnalyst, - CompanyPositions.BusinessManager, CompanyPositions.OperationsManager, CompanyPositions.CFO, - CompanyPositions.CEO, CompanyPositions.SecurityGuard, CompanyPositions.SecurityOfficer, - CompanyPositions.SecuritySupervisor, CompanyPositions.HeadOfSecurity]); - AddToCompanies(NWO); - - var ClarkeIncorporated = new Company(); - ClarkeIncorporated.init("Clarke Incorporated", 2.25, 2.25); - ClarkeIncorporated.addPositions([ - CompanyPositions.SoftwareIntern, CompanyPositions.ITIntern, CompanyPositions.BusinessIntern, - CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, CompanyPositions.LeadDev, - CompanyPositions.ITAnalyst, CompanyPositions.ITManager, CompanyPositions.SysAdmin, - CompanyPositions.SecurityEngineer, CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, - CompanyPositions.HeadOfSoftware, CompanyPositions.HeadOfEngineering, - CompanyPositions.VicePresident, CompanyPositions.CTO, CompanyPositions.BusinessAnalyst, - CompanyPositions.BusinessManager, CompanyPositions.OperationsManager, CompanyPositions.CFO, - CompanyPositions.CEO, CompanyPositions.SecurityGuard, CompanyPositions.SecurityOfficer, - CompanyPositions.SecuritySupervisor, CompanyPositions.HeadOfSecurity]); - AddToCompanies(ClarkeIncorporated); - - var OmniTekIncorporated = new Company(); - OmniTekIncorporated.init("OmniTek Incorporated", 2.25, 2.25); - OmniTekIncorporated.addPositions([ - CompanyPositions.SoftwareIntern, CompanyPositions.ITIntern, CompanyPositions.BusinessIntern, - CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, CompanyPositions.LeadDev, - CompanyPositions.ITAnalyst, CompanyPositions.ITManager, CompanyPositions.SysAdmin, - CompanyPositions.SecurityEngineer, CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, - CompanyPositions.HeadOfSoftware, CompanyPositions.HeadOfEngineering, - CompanyPositions.VicePresident, CompanyPositions.CTO, CompanyPositions.BusinessAnalyst, - CompanyPositions.BusinessManager, CompanyPositions.OperationsManager, CompanyPositions.CFO, - CompanyPositions.CEO, CompanyPositions.SecurityGuard, CompanyPositions.SecurityOfficer, - CompanyPositions.SecuritySupervisor, CompanyPositions.HeadOfSecurity]); - AddToCompanies(OmniTekIncorporated); - - var FourSigma = new Company(); - FourSigma.init("Four Sigma", 2.5, 2.5); - FourSigma.addPositions([ - CompanyPositions.SoftwareIntern, CompanyPositions.ITIntern, CompanyPositions.BusinessIntern, - CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, CompanyPositions.LeadDev, - CompanyPositions.ITAnalyst, CompanyPositions.ITManager, CompanyPositions.SysAdmin, - CompanyPositions.SecurityEngineer, CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, - CompanyPositions.HeadOfSoftware, CompanyPositions.HeadOfEngineering, - CompanyPositions.VicePresident, CompanyPositions.CTO, CompanyPositions.BusinessAnalyst, - CompanyPositions.BusinessManager, CompanyPositions.OperationsManager, CompanyPositions.CFO, - CompanyPositions.CEO, CompanyPositions.SecurityGuard, CompanyPositions.SecurityOfficer, - CompanyPositions.SecuritySupervisor, CompanyPositions.HeadOfSecurity]); - AddToCompanies(FourSigma); - - var KuaiGongInternational = new Company(); - KuaiGongInternational.init("KuaiGong International", 2.2, 2.2); - KuaiGongInternational.addPositions([ - CompanyPositions.SoftwareIntern, CompanyPositions.ITIntern, CompanyPositions.BusinessIntern, - CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, CompanyPositions.LeadDev, - CompanyPositions.ITAnalyst, CompanyPositions.ITManager, CompanyPositions.SysAdmin, - CompanyPositions.SecurityEngineer, CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, - CompanyPositions.HeadOfSoftware, CompanyPositions.HeadOfEngineering, - CompanyPositions.VicePresident, CompanyPositions.CTO, CompanyPositions.BusinessAnalyst, - CompanyPositions.BusinessManager, CompanyPositions.OperationsManager, CompanyPositions.CFO, - CompanyPositions.CEO, CompanyPositions.SecurityGuard, CompanyPositions.SecurityOfficer, - CompanyPositions.SecuritySupervisor, CompanyPositions.HeadOfSecurity]); - AddToCompanies(KuaiGongInternational); - - //Technology and communication companies ("Large" servers) - var FulcrumTechnologies = new Company(); - FulcrumTechnologies.init("Fulcrum Technologies", 2.0, 2.0); - FulcrumTechnologies.addPositions([ - CompanyPositions.SoftwareIntern, CompanyPositions.ITIntern, CompanyPositions.BusinessIntern, - CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, CompanyPositions.LeadDev, - CompanyPositions.ITAnalyst, CompanyPositions.ITManager, CompanyPositions.SysAdmin, - CompanyPositions.SecurityEngineer, CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, - CompanyPositions.HeadOfSoftware, CompanyPositions.HeadOfEngineering, - CompanyPositions.VicePresident, CompanyPositions.CTO, CompanyPositions.BusinessAnalyst, - CompanyPositions.BusinessManager, CompanyPositions.OperationsManager, CompanyPositions.CFO, - CompanyPositions.CEO]); - AddToCompanies(FulcrumTechnologies); - - var StormTechnologies = new Company(); - StormTechnologies.init("Storm Technologies", 1.8, 1.8); - StormTechnologies.addPositions([ - CompanyPositions.SoftwareIntern, - CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, CompanyPositions.LeadDev, - CompanyPositions.ITAnalyst, CompanyPositions.ITManager, CompanyPositions.SysAdmin, - CompanyPositions.SecurityEngineer, CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, - CompanyPositions.HeadOfSoftware, CompanyPositions.HeadOfEngineering, - CompanyPositions.VicePresident, CompanyPositions.CTO, CompanyPositions.BusinessAnalyst, - CompanyPositions.BusinessManager, CompanyPositions.OperationsManager, CompanyPositions.CFO, - CompanyPositions.CEO]); - AddToCompanies(StormTechnologies); - - var DefComm = new Company(); - DefComm.init("DefComm", 1.75, 1.75); - DefComm.addPositions([ - CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, - CompanyPositions.LeadDev, CompanyPositions.ITIntern, CompanyPositions.ITAnalyst, - CompanyPositions.ITManager, CompanyPositions.SysAdmin, CompanyPositions.SecurityEngineer, - CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, CompanyPositions.HeadOfSoftware, - CompanyPositions.HeadOfEngineering, CompanyPositions.CTO, CompanyPositions.CFO, CompanyPositions.CEO]); - AddToCompanies(DefComm); - - var HeliosLabs = new Company(); - HeliosLabs.init("Helios Labs", 1.8, 1.8); - HeliosLabs.addPositions([ - CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, - CompanyPositions.LeadDev, CompanyPositions.ITIntern, CompanyPositions.ITAnalyst, - CompanyPositions.ITManager, CompanyPositions.SysAdmin, CompanyPositions.SecurityEngineer, - CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, CompanyPositions.HeadOfSoftware, - CompanyPositions.HeadOfEngineering, CompanyPositions.CTO, CompanyPositions.CFO, CompanyPositions.CEO]); - AddToCompanies(HeliosLabs); - - var VitaLife = new Company(); - VitaLife.init("VitaLife", 1.8, 1.8); - VitaLife.addPositions([ - CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, - CompanyPositions.LeadDev, CompanyPositions.ITIntern, CompanyPositions.ITAnalyst, - CompanyPositions.ITManager, CompanyPositions.SysAdmin, CompanyPositions.SecurityEngineer, - CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, CompanyPositions.HeadOfSoftware, - CompanyPositions.HeadOfEngineering, CompanyPositions.CTO, CompanyPositions.BusinessManager, - CompanyPositions.OperationsManager, CompanyPositions.CFO, CompanyPositions.CEO]); - AddToCompanies(VitaLife); - - var IcarusMicrosystems = new Company(); - IcarusMicrosystems.init("Icarus Microsystems", 1.9, 1.9); - IcarusMicrosystems.addPositions([ - CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, - CompanyPositions.LeadDev, CompanyPositions.ITIntern, CompanyPositions.ITAnalyst, - CompanyPositions.ITManager, CompanyPositions.SysAdmin, CompanyPositions.SecurityEngineer, - CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, CompanyPositions.HeadOfSoftware, - CompanyPositions.HeadOfEngineering, CompanyPositions.CTO, CompanyPositions.BusinessManager, - CompanyPositions.OperationsManager, CompanyPositions.CFO, CompanyPositions.CEO]); - AddToCompanies(IcarusMicrosystems); - - var UniversalEnergy = new Company(); - UniversalEnergy.init("Universal Energy", 2.0, 2.0); - UniversalEnergy.addPositions([ - CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, - CompanyPositions.LeadDev, CompanyPositions.ITIntern, CompanyPositions.ITAnalyst, - CompanyPositions.ITManager, CompanyPositions.SysAdmin, CompanyPositions.SecurityEngineer, - CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, CompanyPositions.HeadOfSoftware, - CompanyPositions.HeadOfEngineering, CompanyPositions.CTO, CompanyPositions.BusinessManager, - CompanyPositions.OperationsManager, CompanyPositions.CFO, CompanyPositions.CEO]); - AddToCompanies(UniversalEnergy); - - var GalacticCybersystems = new Company(); - GalacticCybersystems.init("Galactic Cybersystems", 1.9, 1.9); - GalacticCybersystems.addPositions([ - CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, - CompanyPositions.LeadDev, CompanyPositions.ITIntern, CompanyPositions.ITAnalyst, - CompanyPositions.ITManager, CompanyPositions.SysAdmin, CompanyPositions.SecurityEngineer, - CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, CompanyPositions.HeadOfSoftware, - CompanyPositions.HeadOfEngineering, CompanyPositions.CTO, CompanyPositions.BusinessManager, - CompanyPositions.OperationsManager, CompanyPositions.CFO, CompanyPositions.CEO]); - AddToCompanies(GalacticCybersystems); - - //Defense Companies ("Large" Companies) - var AeroCorp = new Company(); - AeroCorp.init("AeroCorp", 1.7, 1.7); - AeroCorp.addPositions([ - CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, - CompanyPositions.LeadDev, CompanyPositions.ITIntern, CompanyPositions.ITAnalyst, - CompanyPositions.ITManager, CompanyPositions.SysAdmin, CompanyPositions.SecurityEngineer, - CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, CompanyPositions.HeadOfSoftware, - CompanyPositions.HeadOfEngineering, CompanyPositions.CTO, - CompanyPositions.OperationsManager, CompanyPositions.CFO, CompanyPositions.CEO, - CompanyPositions.SecurityGuard, CompanyPositions.SecurityOfficer, CompanyPositions.SecuritySupervisor, - CompanyPositions.HeadOfSecurity]); - AddToCompanies(AeroCorp); - - var OmniaCybersystems = new Company(); - OmniaCybersystems.init("Omnia Cybersystems", 1.7, 1.7); - OmniaCybersystems.addPositions([ - CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, - CompanyPositions.LeadDev, CompanyPositions.ITIntern, CompanyPositions.ITAnalyst, - CompanyPositions.ITManager, CompanyPositions.SysAdmin, CompanyPositions.SecurityEngineer, - CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, CompanyPositions.HeadOfSoftware, - CompanyPositions.HeadOfEngineering, CompanyPositions.CTO, - CompanyPositions.OperationsManager, CompanyPositions.CFO, CompanyPositions.CEO, - CompanyPositions.SecurityGuard, CompanyPositions.SecurityOfficer, CompanyPositions.SecuritySupervisor, - CompanyPositions.HeadOfSecurity]); - AddToCompanies(OmniaCybersystems); - - var SolarisSpaceSystems = new Company(); - SolarisSpaceSystems.init("Solaris Space Systems", 1.7, 1.7); - SolarisSpaceSystems.addPositions([ - CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, - CompanyPositions.LeadDev, CompanyPositions.ITIntern, CompanyPositions.ITAnalyst, - CompanyPositions.ITManager, CompanyPositions.SysAdmin, CompanyPositions.SecurityEngineer, - CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, CompanyPositions.HeadOfSoftware, - CompanyPositions.HeadOfEngineering, CompanyPositions.CTO, - CompanyPositions.OperationsManager, CompanyPositions.CFO, CompanyPositions.CEO, - CompanyPositions.SecurityGuard, CompanyPositions.SecurityOfficer, CompanyPositions.SecuritySupervisor, - CompanyPositions.HeadOfSecurity]); - AddToCompanies(SolarisSpaceSystems); - - var DeltaOne = new Company(); - DeltaOne.init("Delta One", 1.6, 1.6); - DeltaOne.addPositions([ - CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, - CompanyPositions.LeadDev, CompanyPositions.ITIntern, CompanyPositions.ITAnalyst, - CompanyPositions.ITManager, CompanyPositions.SysAdmin, CompanyPositions.SecurityEngineer, - CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, CompanyPositions.HeadOfSoftware, - CompanyPositions.HeadOfEngineering, CompanyPositions.CTO, - CompanyPositions.OperationsManager, CompanyPositions.CFO, CompanyPositions.CEO, - CompanyPositions.SecurityGuard, CompanyPositions.SecurityOfficer, CompanyPositions.SecuritySupervisor, - CompanyPositions.HeadOfSecurity]); - AddToCompanies(DeltaOne); - - //Health, medicine, pharmaceutical companies ("Large" servers) - var GlobalPharmaceuticals = new Company(); - GlobalPharmaceuticals.init("Global Pharmaceuticals", 1.8, 1.8); - GlobalPharmaceuticals.addPositions([ - CompanyPositions.SoftwareIntern, CompanyPositions.ITIntern, CompanyPositions.BusinessIntern, - CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, CompanyPositions.LeadDev, - CompanyPositions.ITAnalyst, CompanyPositions.ITManager, CompanyPositions.SecurityEngineer, - CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, - CompanyPositions.HeadOfSoftware, CompanyPositions.CTO, CompanyPositions.BusinessAnalyst, - CompanyPositions.BusinessManager, CompanyPositions.OperationsManager, - CompanyPositions.CFO, CompanyPositions.CEO, CompanyPositions.SecurityGuard, - CompanyPositions.SecuritySupervisor, CompanyPositions.HeadOfSecurity]); - AddToCompanies(GlobalPharmaceuticals); - - var NovaMedical = new Company(); - NovaMedical.init("Nova Medical", 1.75, 1.75); - NovaMedical.addPositions([ - CompanyPositions.SoftwareIntern, CompanyPositions.ITIntern, CompanyPositions.BusinessIntern, - CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, CompanyPositions.LeadDev, - CompanyPositions.ITAnalyst, CompanyPositions.ITManager, CompanyPositions.SecurityEngineer, - CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, - CompanyPositions.HeadOfSoftware, CompanyPositions.CTO, CompanyPositions.BusinessAnalyst, - CompanyPositions.BusinessManager, CompanyPositions.OperationsManager, - CompanyPositions.CFO, CompanyPositions.CEO, CompanyPositions.SecurityGuard, - CompanyPositions.SecuritySupervisor, CompanyPositions.HeadOfSecurity]); - AddToCompanies(NovaMedical); + /* Companies that also have servers */ + //Megacorporations + var ECorp = new Company(); + ECorp.init(Locations.AevumECorp, 3.0, 3.0, 250); + ECorp.addPositions([ + CompanyPositions.SoftwareIntern, CompanyPositions.ITIntern, CompanyPositions.BusinessIntern, + CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, CompanyPositions.LeadDev, + CompanyPositions.ITAnalyst, CompanyPositions.ITManager, CompanyPositions.SysAdmin, + CompanyPositions.SecurityEngineer, CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, + CompanyPositions.HeadOfSoftware, CompanyPositions.HeadOfEngineering, + CompanyPositions.VicePresident, CompanyPositions.CTO, CompanyPositions.BusinessAnalyst, + CompanyPositions.BusinessManager, CompanyPositions.OperationsManager, CompanyPositions.CFO, + CompanyPositions.CEO, CompanyPositions.SecurityGuard, CompanyPositions.SecurityOfficer, + CompanyPositions.SecuritySupervisor, CompanyPositions.HeadOfSecurity]); + AddToCompanies(ECorp); + + var MegaCorp = new Company(); + MegaCorp.init(Locations.Sector12MegaCorp, 3.0, 3.0, 250); + MegaCorp.addPositions([ + CompanyPositions.SoftwareIntern, CompanyPositions.ITIntern, CompanyPositions.BusinessIntern, + CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, CompanyPositions.LeadDev, + CompanyPositions.ITAnalyst, CompanyPositions.ITManager, CompanyPositions.SysAdmin, + CompanyPositions.SecurityEngineer, CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, + CompanyPositions.HeadOfSoftware, CompanyPositions.HeadOfEngineering, + CompanyPositions.VicePresident, CompanyPositions.CTO, CompanyPositions.BusinessAnalyst, + CompanyPositions.BusinessManager, CompanyPositions.OperationsManager, CompanyPositions.CFO, + CompanyPositions.CEO, CompanyPositions.SecurityGuard, CompanyPositions.SecurityOfficer, + CompanyPositions.SecuritySupervisor, CompanyPositions.HeadOfSecurity]); + AddToCompanies(MegaCorp); + + var BachmanAndAssociates = new Company(); + BachmanAndAssociates.init(Locations.AevumBachmanAndAssociates, 2.6, 2.6, 225); + BachmanAndAssociates.addPositions([ + CompanyPositions.SoftwareIntern, CompanyPositions.ITIntern, CompanyPositions.BusinessIntern, + CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, CompanyPositions.LeadDev, + CompanyPositions.ITAnalyst, CompanyPositions.ITManager, CompanyPositions.SysAdmin, + CompanyPositions.SecurityEngineer, CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, + CompanyPositions.HeadOfSoftware, CompanyPositions.HeadOfEngineering, + CompanyPositions.VicePresident, CompanyPositions.CTO, CompanyPositions.BusinessAnalyst, + CompanyPositions.BusinessManager, CompanyPositions.OperationsManager, CompanyPositions.CFO, + CompanyPositions.CEO, CompanyPositions.SecurityGuard, CompanyPositions.SecurityOfficer, + CompanyPositions.SecuritySupervisor, CompanyPositions.HeadOfSecurity]); + AddToCompanies(BachmanAndAssociates); + + var BladeIndustries = new Company(); + BladeIndustries.init(Locations.Sector12BladeIndustries, 2.75, 2.75, 225); + BladeIndustries.addPositions([ + CompanyPositions.SoftwareIntern, CompanyPositions.ITIntern, CompanyPositions.BusinessIntern, + CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, CompanyPositions.LeadDev, + CompanyPositions.ITAnalyst, CompanyPositions.ITManager, CompanyPositions.SysAdmin, + CompanyPositions.SecurityEngineer, CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, + CompanyPositions.HeadOfSoftware, CompanyPositions.HeadOfEngineering, + CompanyPositions.VicePresident, CompanyPositions.CTO, CompanyPositions.BusinessAnalyst, + CompanyPositions.BusinessManager, CompanyPositions.OperationsManager, CompanyPositions.CFO, + CompanyPositions.CEO, CompanyPositions.SecurityGuard, CompanyPositions.SecurityOfficer, + CompanyPositions.SecuritySupervisor, CompanyPositions.HeadOfSecurity]); + AddToCompanies(BladeIndustries); + + var NWO = new Company(); + NWO.init(Locations.VolhavenNWO, 2.75, 2.75, 250); + NWO.addPositions([ + CompanyPositions.SoftwareIntern, CompanyPositions.ITIntern, CompanyPositions.BusinessIntern, + CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, CompanyPositions.LeadDev, + CompanyPositions.ITAnalyst, CompanyPositions.ITManager, CompanyPositions.SysAdmin, + CompanyPositions.SecurityEngineer, CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, + CompanyPositions.HeadOfSoftware, CompanyPositions.HeadOfEngineering, + CompanyPositions.VicePresident, CompanyPositions.CTO, CompanyPositions.BusinessAnalyst, + CompanyPositions.BusinessManager, CompanyPositions.OperationsManager, CompanyPositions.CFO, + CompanyPositions.CEO, CompanyPositions.SecurityGuard, CompanyPositions.SecurityOfficer, + CompanyPositions.SecuritySupervisor, CompanyPositions.HeadOfSecurity]); + AddToCompanies(NWO); + + var ClarkeIncorporated = new Company(); + ClarkeIncorporated.init(Locations.AevumClarkeIncorporated, 2.25, 2.25, 225); + ClarkeIncorporated.addPositions([ + CompanyPositions.SoftwareIntern, CompanyPositions.ITIntern, CompanyPositions.BusinessIntern, + CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, CompanyPositions.LeadDev, + CompanyPositions.ITAnalyst, CompanyPositions.ITManager, CompanyPositions.SysAdmin, + CompanyPositions.SecurityEngineer, CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, + CompanyPositions.HeadOfSoftware, CompanyPositions.HeadOfEngineering, + CompanyPositions.VicePresident, CompanyPositions.CTO, CompanyPositions.BusinessAnalyst, + CompanyPositions.BusinessManager, CompanyPositions.OperationsManager, CompanyPositions.CFO, + CompanyPositions.CEO, CompanyPositions.SecurityGuard, CompanyPositions.SecurityOfficer, + CompanyPositions.SecuritySupervisor, CompanyPositions.HeadOfSecurity]); + AddToCompanies(ClarkeIncorporated); + + var OmniTekIncorporated = new Company(); + OmniTekIncorporated.init(Locations.VolhavenOmniTekIncorporated, 2.25, 2.25, 225); + OmniTekIncorporated.addPositions([ + CompanyPositions.SoftwareIntern, CompanyPositions.ITIntern, CompanyPositions.BusinessIntern, + CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, CompanyPositions.LeadDev, + CompanyPositions.ITAnalyst, CompanyPositions.ITManager, CompanyPositions.SysAdmin, + CompanyPositions.SecurityEngineer, CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, + CompanyPositions.HeadOfSoftware, CompanyPositions.HeadOfEngineering, + CompanyPositions.VicePresident, CompanyPositions.CTO, CompanyPositions.BusinessAnalyst, + CompanyPositions.BusinessManager, CompanyPositions.OperationsManager, CompanyPositions.CFO, + CompanyPositions.CEO, CompanyPositions.SecurityGuard, CompanyPositions.SecurityOfficer, + CompanyPositions.SecuritySupervisor, CompanyPositions.HeadOfSecurity]); + AddToCompanies(OmniTekIncorporated); + + var FourSigma = new Company(); + FourSigma.init(Locations.Sector12FourSigma, 2.5, 2.5, 225); + FourSigma.addPositions([ + CompanyPositions.SoftwareIntern, CompanyPositions.ITIntern, CompanyPositions.BusinessIntern, + CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, CompanyPositions.LeadDev, + CompanyPositions.ITAnalyst, CompanyPositions.ITManager, CompanyPositions.SysAdmin, + CompanyPositions.SecurityEngineer, CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, + CompanyPositions.HeadOfSoftware, CompanyPositions.HeadOfEngineering, + CompanyPositions.VicePresident, CompanyPositions.CTO, CompanyPositions.BusinessAnalyst, + CompanyPositions.BusinessManager, CompanyPositions.OperationsManager, CompanyPositions.CFO, + CompanyPositions.CEO, CompanyPositions.SecurityGuard, CompanyPositions.SecurityOfficer, + CompanyPositions.SecuritySupervisor, CompanyPositions.HeadOfSecurity]); + AddToCompanies(FourSigma); + + var KuaiGongInternational = new Company(); + KuaiGongInternational.init(Locations.ChongqingKuaiGongInternational, 2.2, 2.2, 225); + KuaiGongInternational.addPositions([ + CompanyPositions.SoftwareIntern, CompanyPositions.ITIntern, CompanyPositions.BusinessIntern, + CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, CompanyPositions.LeadDev, + CompanyPositions.ITAnalyst, CompanyPositions.ITManager, CompanyPositions.SysAdmin, + CompanyPositions.SecurityEngineer, CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, + CompanyPositions.HeadOfSoftware, CompanyPositions.HeadOfEngineering, + CompanyPositions.VicePresident, CompanyPositions.CTO, CompanyPositions.BusinessAnalyst, + CompanyPositions.BusinessManager, CompanyPositions.OperationsManager, CompanyPositions.CFO, + CompanyPositions.CEO, CompanyPositions.SecurityGuard, CompanyPositions.SecurityOfficer, + CompanyPositions.SecuritySupervisor, CompanyPositions.HeadOfSecurity]); + AddToCompanies(KuaiGongInternational); + + //Technology and communication companies ("Large" servers) + var FulcrumTechnologies = new Company(); + FulcrumTechnologies.init(Locations.AevumFulcrumTechnologies, 2.0, 2.0, 225); + FulcrumTechnologies.addPositions([ + CompanyPositions.SoftwareIntern, CompanyPositions.ITIntern, CompanyPositions.BusinessIntern, + CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, CompanyPositions.LeadDev, + CompanyPositions.ITAnalyst, CompanyPositions.ITManager, CompanyPositions.SysAdmin, + CompanyPositions.SecurityEngineer, CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, + CompanyPositions.HeadOfSoftware, CompanyPositions.HeadOfEngineering, + CompanyPositions.VicePresident, CompanyPositions.CTO, CompanyPositions.BusinessAnalyst, + CompanyPositions.BusinessManager, CompanyPositions.OperationsManager, CompanyPositions.CFO, + CompanyPositions.CEO]); + AddToCompanies(FulcrumTechnologies); + + var StormTechnologies = new Company(); + StormTechnologies.init(Locations.IshimaStormTechnologies, 1.8, 1.8, 200); + StormTechnologies.addPositions([ + CompanyPositions.SoftwareIntern, + CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, CompanyPositions.LeadDev, + CompanyPositions.ITAnalyst, CompanyPositions.ITManager, CompanyPositions.SysAdmin, + CompanyPositions.SecurityEngineer, CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, + CompanyPositions.HeadOfSoftware, CompanyPositions.HeadOfEngineering, + CompanyPositions.VicePresident, CompanyPositions.CTO, CompanyPositions.BusinessAnalyst, + CompanyPositions.BusinessManager, CompanyPositions.OperationsManager, CompanyPositions.CFO, + CompanyPositions.CEO]); + AddToCompanies(StormTechnologies); + + var DefComm = new Company(); + DefComm.init(Locations.NewTokyoDefComm, 1.75, 1.75, 200); + DefComm.addPositions([ + CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, + CompanyPositions.LeadDev, CompanyPositions.ITIntern, CompanyPositions.ITAnalyst, + CompanyPositions.ITManager, CompanyPositions.SysAdmin, CompanyPositions.SecurityEngineer, + CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, CompanyPositions.HeadOfSoftware, + CompanyPositions.HeadOfEngineering, CompanyPositions.CTO, CompanyPositions.CFO, CompanyPositions.CEO]); + AddToCompanies(DefComm); + + var HeliosLabs = new Company(); + HeliosLabs.init(Locations.VolhavenHeliosLabs, 1.8, 1.8, 200); + HeliosLabs.addPositions([ + CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, + CompanyPositions.LeadDev, CompanyPositions.ITIntern, CompanyPositions.ITAnalyst, + CompanyPositions.ITManager, CompanyPositions.SysAdmin, CompanyPositions.SecurityEngineer, + CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, CompanyPositions.HeadOfSoftware, + CompanyPositions.HeadOfEngineering, CompanyPositions.CTO, CompanyPositions.CFO, CompanyPositions.CEO]); + AddToCompanies(HeliosLabs); + + var VitaLife = new Company(); + VitaLife.init(Locations.NewTokyoVitaLife, 1.8, 1.8, 200); + VitaLife.addPositions([ + CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, + CompanyPositions.LeadDev, CompanyPositions.ITIntern, CompanyPositions.ITAnalyst, + CompanyPositions.ITManager, CompanyPositions.SysAdmin, CompanyPositions.SecurityEngineer, + CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, CompanyPositions.HeadOfSoftware, + CompanyPositions.HeadOfEngineering, CompanyPositions.CTO, CompanyPositions.BusinessManager, + CompanyPositions.OperationsManager, CompanyPositions.CFO, CompanyPositions.CEO]); + AddToCompanies(VitaLife); + + var IcarusMicrosystems = new Company(); + IcarusMicrosystems.init(Locations.Sector12IcarusMicrosystems, 1.9, 1.9, 200); + IcarusMicrosystems.addPositions([ + CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, + CompanyPositions.LeadDev, CompanyPositions.ITIntern, CompanyPositions.ITAnalyst, + CompanyPositions.ITManager, CompanyPositions.SysAdmin, CompanyPositions.SecurityEngineer, + CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, CompanyPositions.HeadOfSoftware, + CompanyPositions.HeadOfEngineering, CompanyPositions.CTO, CompanyPositions.BusinessManager, + CompanyPositions.OperationsManager, CompanyPositions.CFO, CompanyPositions.CEO]); + AddToCompanies(IcarusMicrosystems); + + var UniversalEnergy = new Company(); + UniversalEnergy.init(Locations.Sector12UniversalEnergy, 2.0, 2.0, 200); + UniversalEnergy.addPositions([ + CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, + CompanyPositions.LeadDev, CompanyPositions.ITIntern, CompanyPositions.ITAnalyst, + CompanyPositions.ITManager, CompanyPositions.SysAdmin, CompanyPositions.SecurityEngineer, + CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, CompanyPositions.HeadOfSoftware, + CompanyPositions.HeadOfEngineering, CompanyPositions.CTO, CompanyPositions.BusinessManager, + CompanyPositions.OperationsManager, CompanyPositions.CFO, CompanyPositions.CEO]); + AddToCompanies(UniversalEnergy); + + var GalacticCybersystems = new Company(); + GalacticCybersystems.init(Locations.AevumGalacticCybersystems, 1.9, 1.9, 200); + GalacticCybersystems.addPositions([ + CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, + CompanyPositions.LeadDev, CompanyPositions.ITIntern, CompanyPositions.ITAnalyst, + CompanyPositions.ITManager, CompanyPositions.SysAdmin, CompanyPositions.SecurityEngineer, + CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, CompanyPositions.HeadOfSoftware, + CompanyPositions.HeadOfEngineering, CompanyPositions.CTO, CompanyPositions.BusinessManager, + CompanyPositions.OperationsManager, CompanyPositions.CFO, CompanyPositions.CEO]); + AddToCompanies(GalacticCybersystems); + + //Defense Companies ("Large" Companies) + var AeroCorp = new Company(); + AeroCorp.init(Locations.AevumAeroCorp, 1.7, 1.7, 200); + AeroCorp.addPositions([ + CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, + CompanyPositions.LeadDev, CompanyPositions.ITIntern, CompanyPositions.ITAnalyst, + CompanyPositions.ITManager, CompanyPositions.SysAdmin, CompanyPositions.SecurityEngineer, + CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, CompanyPositions.HeadOfSoftware, + CompanyPositions.HeadOfEngineering, CompanyPositions.CTO, + CompanyPositions.OperationsManager, CompanyPositions.CFO, CompanyPositions.CEO, + CompanyPositions.SecurityGuard, CompanyPositions.SecurityOfficer, CompanyPositions.SecuritySupervisor, + CompanyPositions.HeadOfSecurity]); + AddToCompanies(AeroCorp); + + var OmniaCybersystems = new Company(); + OmniaCybersystems.init(Locations.VolhavenOmniaCybersystems, 1.7, 1.7, 200); + OmniaCybersystems.addPositions([ + CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, + CompanyPositions.LeadDev, CompanyPositions.ITIntern, CompanyPositions.ITAnalyst, + CompanyPositions.ITManager, CompanyPositions.SysAdmin, CompanyPositions.SecurityEngineer, + CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, CompanyPositions.HeadOfSoftware, + CompanyPositions.HeadOfEngineering, CompanyPositions.CTO, + CompanyPositions.OperationsManager, CompanyPositions.CFO, CompanyPositions.CEO, + CompanyPositions.SecurityGuard, CompanyPositions.SecurityOfficer, CompanyPositions.SecuritySupervisor, + CompanyPositions.HeadOfSecurity]); + AddToCompanies(OmniaCybersystems); + + var SolarisSpaceSystems = new Company(); + SolarisSpaceSystems.init(Locations.ChongqingSolarisSpaceSystems, 1.7, 1.7, 200); + SolarisSpaceSystems.addPositions([ + CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, + CompanyPositions.LeadDev, CompanyPositions.ITIntern, CompanyPositions.ITAnalyst, + CompanyPositions.ITManager, CompanyPositions.SysAdmin, CompanyPositions.SecurityEngineer, + CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, CompanyPositions.HeadOfSoftware, + CompanyPositions.HeadOfEngineering, CompanyPositions.CTO, + CompanyPositions.OperationsManager, CompanyPositions.CFO, CompanyPositions.CEO, + CompanyPositions.SecurityGuard, CompanyPositions.SecurityOfficer, CompanyPositions.SecuritySupervisor, + CompanyPositions.HeadOfSecurity]); + AddToCompanies(SolarisSpaceSystems); + + var DeltaOne = new Company(); + DeltaOne.init(Locations.Sector12DeltaOne, 1.6, 1.6, 200); + DeltaOne.addPositions([ + CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, + CompanyPositions.LeadDev, CompanyPositions.ITIntern, CompanyPositions.ITAnalyst, + CompanyPositions.ITManager, CompanyPositions.SysAdmin, CompanyPositions.SecurityEngineer, + CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, CompanyPositions.HeadOfSoftware, + CompanyPositions.HeadOfEngineering, CompanyPositions.CTO, + CompanyPositions.OperationsManager, CompanyPositions.CFO, CompanyPositions.CEO, + CompanyPositions.SecurityGuard, CompanyPositions.SecurityOfficer, CompanyPositions.SecuritySupervisor, + CompanyPositions.HeadOfSecurity]); + AddToCompanies(DeltaOne); + + //Health, medicine, pharmaceutical companies ("Large" servers) + var GlobalPharmaceuticals = new Company(); + GlobalPharmaceuticals.init(Locations.NewTokyoGlobalPharmaceuticals, 1.8, 1.8, 225); + GlobalPharmaceuticals.addPositions([ + CompanyPositions.SoftwareIntern, CompanyPositions.ITIntern, CompanyPositions.BusinessIntern, + CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, CompanyPositions.LeadDev, + CompanyPositions.ITAnalyst, CompanyPositions.ITManager, CompanyPositions.SecurityEngineer, + CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, + CompanyPositions.HeadOfSoftware, CompanyPositions.CTO, CompanyPositions.BusinessAnalyst, + CompanyPositions.BusinessManager, CompanyPositions.OperationsManager, + CompanyPositions.CFO, CompanyPositions.CEO, CompanyPositions.SecurityGuard, + CompanyPositions.SecuritySupervisor, CompanyPositions.HeadOfSecurity]); + AddToCompanies(GlobalPharmaceuticals); + + var NovaMedical = new Company(); + NovaMedical.init(Locations.IshimaNovaMedical, 1.75, 1.75, 200); + NovaMedical.addPositions([ + CompanyPositions.SoftwareIntern, CompanyPositions.ITIntern, CompanyPositions.BusinessIntern, + CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, CompanyPositions.LeadDev, + CompanyPositions.ITAnalyst, CompanyPositions.ITManager, CompanyPositions.SecurityEngineer, + CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, + CompanyPositions.HeadOfSoftware, CompanyPositions.CTO, CompanyPositions.BusinessAnalyst, + CompanyPositions.BusinessManager, CompanyPositions.OperationsManager, + CompanyPositions.CFO, CompanyPositions.CEO, CompanyPositions.SecurityGuard, + CompanyPositions.SecuritySupervisor, CompanyPositions.HeadOfSecurity]); + AddToCompanies(NovaMedical); - //Other large companies - var CIA = new Company(); - CIA.init("Central Intelligence Agency", 2.0, 2.0); - CIA.addPositions([ - CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, - CompanyPositions.LeadDev, CompanyPositions.ITIntern, CompanyPositions.ITAnalyst, - CompanyPositions.ITManager, CompanyPositions.SysAdmin, CompanyPositions.SecurityEngineer, - CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, CompanyPositions.HeadOfSoftware, - CompanyPositions.HeadOfEngineering, CompanyPositions.SecurityGuard, CompanyPositions.SecurityOfficer, - CompanyPositions.SecuritySupervisor, CompanyPositions.HeadOfSecurity, CompanyPositions.FieldAgent, - CompanyPositions.SecretAgent, CompanyPositions.SpecialOperative]); - AddToCompanies(CIA); - - var NSA = new Company(); - NSA.init("National Security Agency", 2.0, 2.0); - NSA.addPositions([ - CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, - CompanyPositions.LeadDev, CompanyPositions.ITIntern, CompanyPositions.ITAnalyst, - CompanyPositions.ITManager, CompanyPositions.SysAdmin, CompanyPositions.SecurityEngineer, - CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, CompanyPositions.HeadOfSoftware, - CompanyPositions.HeadOfEngineering, CompanyPositions.SecurityGuard, CompanyPositions.SecurityOfficer, - CompanyPositions.SecuritySupervisor, CompanyPositions.HeadOfSecurity, CompanyPositions.FieldAgent, - CompanyPositions.SecretAgent, CompanyPositions.SpecialOperative]); - AddToCompanies(NSA); - - var WatchdogSecurity = new Company(); - WatchdogSecurity.init("Watchdog Securty", 1.5, 1.5); - WatchdogSecurity.addPositions([ - CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, - CompanyPositions.LeadDev, CompanyPositions.ITIntern, CompanyPositions.ITAnalyst, - CompanyPositions.ITManager, CompanyPositions.SysAdmin, CompanyPositions.SecurityEngineer, - CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, CompanyPositions.HeadOfSoftware, - CompanyPositions.HeadOfEngineering, CompanyPositions.SecurityGuard, CompanyPositions.SecurityOfficer, - CompanyPositions.SecuritySupervisor, CompanyPositions.HeadOfSecurity, CompanyPositions.FieldAgent, - CompanyPositions.SecretAgent, CompanyPositions.SpecialOperative]); - AddToCompanies(WatchdogSecurity); - - //"Medium level" companies - var LexoCorp = new Company(); - LexoCorp.init("LexoCorp", 1.4, 1.4); - LexoCorp.addPositions([ - CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, - CompanyPositions.LeadDev, CompanyPositions.ITIntern, CompanyPositions.ITAnalyst, - CompanyPositions.ITManager, CompanyPositions.SysAdmin, CompanyPositions.SecurityEngineer, - CompanyPositions.NetworkEngineer, CompanyPositions.HeadOfSoftware, CompanyPositions.CTO, - CompanyPositions.BusinessIntern, CompanyPositions.BusinessAnalyst, - CompanyPositions.OperationsManager, CompanyPositions.CFO, CompanyPositions.CEO, - CompanyPositions.SecurityGuard, CompanyPositions.SecurityOfficer, CompanyPositions.HeadOfSecurity]); - AddToCompanies(LexoCorp); - - var RhoConstruction = new Company(); - RhoConstruction.init("Rho Construction", 1.3, 1.3); - RhoConstruction.addPositions([ - CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, - CompanyPositions.LeadDev, CompanyPositions.BusinessIntern, CompanyPositions.BusinessAnalyst, - CompanyPositions.BusinessManager, CompanyPositions.OperationsManager]); - AddToCompanies(RhoConstruction); - - var AlphaEnterprises = new Company(); - AlphaEnterprises.init("Alpha Enterprises", 1.5, 1.5); - AlphaEnterprises.addPositions([ - CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, - CompanyPositions.LeadDev, CompanyPositions.BusinessIntern, CompanyPositions.BusinessAnalyst, - CompanyPositions.BusinessManager, CompanyPositions.OperationsManager]); - AddToCompanies(AlphaEnterprises); - - var AevumPolice = new Company(); - AevumPolice.init("Aevum Police", 1.3, 1.3); - AevumPolice.addPositions([ - CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, - CompanyPositions.LeadDev, CompanyPositions.SecurityGuard, CompanyPositions.PoliceOfficer]); - AddToCompanies(AevumPolice); - - var SysCoreSecurities = new Company(); - SysCoreSecurities.init("SysCore Securities", 1.3, 1.3); - SysCoreSecurities.addPositions([ - CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, - CompanyPositions.LeadDev, CompanyPositions.ITIntern, CompanyPositions.ITAnalyst, - CompanyPositions.ITManager, CompanyPositions.SysAdmin, CompanyPositions.SecurityEngineer, - CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, CompanyPositions.HeadOfSoftware, - CompanyPositions.CTO]); - AddToCompanies(SysCoreSecurities); - - var CompuTek = new Company(); - CompuTek.init("CompuTek", 1.2, 1.2); - CompuTek.addPositions([ - CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, - CompanyPositions.LeadDev, CompanyPositions.ITIntern, CompanyPositions.ITAnalyst, - CompanyPositions.ITManager, CompanyPositions.SysAdmin, CompanyPositions.SecurityEngineer, - CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, CompanyPositions.HeadOfSoftware, - CompanyPositions.CTO]); - AddToCompanies(CompuTek); - - var NetLinkTechnologies = new Company(); - NetLinkTechnologies.init("NetLink Technologies", 1.2, 1.2); - NetLinkTechnologies.addPositions([ - CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, - CompanyPositions.LeadDev, CompanyPositions.ITIntern, CompanyPositions.ITAnalyst, - CompanyPositions.ITManager, CompanyPositions.SysAdmin, CompanyPositions.SecurityEngineer, - CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, CompanyPositions.HeadOfSoftware, - CompanyPositions.CTO]); - AddToCompanies(NetLinkTechnologies); - - var CarmichaelSecurity = new Company(); - CarmichaelSecurity.init("Carmichael Security", 1.2, 1.2); - CarmichaelSecurity.addPositions([ - CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, - CompanyPositions.LeadDev, CompanyPositions.ITIntern, CompanyPositions.ITAnalyst, - CompanyPositions.ITManager, CompanyPositions.SysAdmin, CompanyPositions.SecurityEngineer, - CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, CompanyPositions.HeadOfSoftware, - CompanyPositions.HeadOfEngineering, CompanyPositions.SecurityGuard, CompanyPositions.SecurityOfficer, - CompanyPositions.SecuritySupervisor, CompanyPositions.HeadOfSecurity, CompanyPositions.FieldAgent, - CompanyPositions.SecretAgent, CompanyPositions.SpecialOperative]); - AddToCompanies(CarmichaelSecurity); - - //"Low level" companies - var FoodNStuff = new Company(); - FoodNStuff.init("FoodNStuff", 1, 1); - FoodNStuff.addPositions([CompanyPositions.Employee]); - AddToCompanies(FoodNStuff); - - var JoesGuns = new Company(); - JoesGuns.init("Joe's Guns", 1, 1); - JoesGuns.addPositions([CompanyPositions.Employee]); - AddToCompanies(JoesGuns); - - var OmegaSoftware = new Company(); - OmegaSoftware.init("Omega Software", 1.1, 1.1); - OmegaSoftware.addPositions([ - CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, - CompanyPositions.LeadDev, CompanyPositions.ITIntern, CompanyPositions.ITAnalyst, - CompanyPositions.ITManager, CompanyPositions.CTO, CompanyPositions.CEO]); - AddToCompanies(OmegaSoftware); - - /* Companies that do not have servers */ - var NoodleBar = new Company(); - NoodleBar.init("Noodle Bar", 1, 1); - NoodleBar.addPositions([CompanyPositions.Waiter]); - AddToCompanies(NoodleBar); + //Other large companies + var CIA = new Company(); + CIA.init(Locations.Sector12CIA, 2.0, 2.0, 150); + CIA.addPositions([ + CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, + CompanyPositions.LeadDev, CompanyPositions.ITIntern, CompanyPositions.ITAnalyst, + CompanyPositions.ITManager, CompanyPositions.SysAdmin, CompanyPositions.SecurityEngineer, + CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, CompanyPositions.HeadOfSoftware, + CompanyPositions.HeadOfEngineering, CompanyPositions.SecurityGuard, CompanyPositions.SecurityOfficer, + CompanyPositions.SecuritySupervisor, CompanyPositions.HeadOfSecurity, CompanyPositions.FieldAgent, + CompanyPositions.SecretAgent, CompanyPositions.SpecialOperative]); + AddToCompanies(CIA); + + var NSA = new Company(); + NSA.init(Locations.Sector12NSA, 2.0, 2.0, 150); + NSA.addPositions([ + CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, + CompanyPositions.LeadDev, CompanyPositions.ITIntern, CompanyPositions.ITAnalyst, + CompanyPositions.ITManager, CompanyPositions.SysAdmin, CompanyPositions.SecurityEngineer, + CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, CompanyPositions.HeadOfSoftware, + CompanyPositions.HeadOfEngineering, CompanyPositions.SecurityGuard, CompanyPositions.SecurityOfficer, + CompanyPositions.SecuritySupervisor, CompanyPositions.HeadOfSecurity, CompanyPositions.FieldAgent, + CompanyPositions.SecretAgent, CompanyPositions.SpecialOperative]); + AddToCompanies(NSA); + + var WatchdogSecurity = new Company(); + WatchdogSecurity.init(Locations.AevumWatchdogSecurity, 1.5, 1.5, 125); + WatchdogSecurity.addPositions([ + CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, + CompanyPositions.LeadDev, CompanyPositions.ITIntern, CompanyPositions.ITAnalyst, + CompanyPositions.ITManager, CompanyPositions.SysAdmin, CompanyPositions.SecurityEngineer, + CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, CompanyPositions.HeadOfSoftware, + CompanyPositions.HeadOfEngineering, CompanyPositions.SecurityGuard, CompanyPositions.SecurityOfficer, + CompanyPositions.SecuritySupervisor, CompanyPositions.HeadOfSecurity, CompanyPositions.FieldAgent, + CompanyPositions.SecretAgent, CompanyPositions.SpecialOperative]); + AddToCompanies(WatchdogSecurity); + + //"Medium level" companies + var LexoCorp = new Company(); + LexoCorp.init(Locations.VolhavenLexoCorp, 1.4, 1.4, 100); + LexoCorp.addPositions([ + CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, + CompanyPositions.LeadDev, CompanyPositions.ITIntern, CompanyPositions.ITAnalyst, + CompanyPositions.ITManager, CompanyPositions.SysAdmin, CompanyPositions.SecurityEngineer, + CompanyPositions.NetworkEngineer, CompanyPositions.HeadOfSoftware, CompanyPositions.CTO, + CompanyPositions.BusinessIntern, CompanyPositions.BusinessAnalyst, + CompanyPositions.OperationsManager, CompanyPositions.CFO, CompanyPositions.CEO, + CompanyPositions.SecurityGuard, CompanyPositions.SecurityOfficer, CompanyPositions.HeadOfSecurity]); + AddToCompanies(LexoCorp); + + var RhoConstruction = new Company(); + RhoConstruction.init(Locations.AevumRhoConstruction, 1.3, 1.3, 50); + RhoConstruction.addPositions([ + CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, + CompanyPositions.LeadDev, CompanyPositions.BusinessIntern, CompanyPositions.BusinessAnalyst, + CompanyPositions.BusinessManager, CompanyPositions.OperationsManager]); + AddToCompanies(RhoConstruction); + + var AlphaEnterprises = new Company(); + AlphaEnterprises.init(Locations.Sector12AlphaEnterprises, 1.5, 1.5, 100); + AlphaEnterprises.addPositions([ + CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, + CompanyPositions.LeadDev, CompanyPositions.BusinessIntern, CompanyPositions.BusinessAnalyst, + CompanyPositions.BusinessManager, CompanyPositions.OperationsManager]); + AddToCompanies(AlphaEnterprises); + + var AevumPolice = new Company(); + AevumPolice.init(Locations.AevumPolice, 1.3, 1.3, 100); + AevumPolice.addPositions([ + CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, + CompanyPositions.LeadDev, CompanyPositions.SecurityGuard, CompanyPositions.PoliceOfficer]); + AddToCompanies(AevumPolice); + + var SysCoreSecurities = new Company(); + SysCoreSecurities.init(Locations.VolhavenSysCoreSecurities, 1.3, 1.3, 75); + SysCoreSecurities.addPositions([ + CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, + CompanyPositions.LeadDev, CompanyPositions.ITIntern, CompanyPositions.ITAnalyst, + CompanyPositions.ITManager, CompanyPositions.SysAdmin, CompanyPositions.SecurityEngineer, + CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, CompanyPositions.HeadOfSoftware, + CompanyPositions.CTO]); + AddToCompanies(SysCoreSecurities); + + var CompuTek = new Company(); + CompuTek.init(Locations.VolhavenCompuTek, 1.2, 1.2, 75); + CompuTek.addPositions([ + CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, + CompanyPositions.LeadDev, CompanyPositions.ITIntern, CompanyPositions.ITAnalyst, + CompanyPositions.ITManager, CompanyPositions.SysAdmin, CompanyPositions.SecurityEngineer, + CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, CompanyPositions.HeadOfSoftware, + CompanyPositions.CTO]); + AddToCompanies(CompuTek); + + var NetLinkTechnologies = new Company(); + NetLinkTechnologies.init(Locations.AevumNetLinkTechnologies, 1.2, 1.2, 100); + NetLinkTechnologies.addPositions([ + CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, + CompanyPositions.LeadDev, CompanyPositions.ITIntern, CompanyPositions.ITAnalyst, + CompanyPositions.ITManager, CompanyPositions.SysAdmin, CompanyPositions.SecurityEngineer, + CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, CompanyPositions.HeadOfSoftware, + CompanyPositions.CTO]); + AddToCompanies(NetLinkTechnologies); + + var CarmichaelSecurity = new Company(); + CarmichaelSecurity.init(Locations.Sector12CarmichaelSecurity, 1.2, 1.2, 100); + CarmichaelSecurity.addPositions([ + CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, + CompanyPositions.LeadDev, CompanyPositions.ITIntern, CompanyPositions.ITAnalyst, + CompanyPositions.ITManager, CompanyPositions.SysAdmin, CompanyPositions.SecurityEngineer, + CompanyPositions.NetworkEngineer, CompanyPositions.NetworkAdministrator, CompanyPositions.HeadOfSoftware, + CompanyPositions.HeadOfEngineering, CompanyPositions.SecurityGuard, CompanyPositions.SecurityOfficer, + CompanyPositions.SecuritySupervisor, CompanyPositions.HeadOfSecurity, CompanyPositions.FieldAgent, + CompanyPositions.SecretAgent, CompanyPositions.SpecialOperative]); + AddToCompanies(CarmichaelSecurity); + + //"Low level" companies + var FoodNStuff = new Company(); + FoodNStuff.init(Locations.Sector12FoodNStuff, 1, 1, 0); + FoodNStuff.addPositions([CompanyPositions.Employee]); + AddToCompanies(FoodNStuff); + + var JoesGuns = new Company(); + JoesGuns.init(Locations.Sector12JoesGuns, 1, 1, 0); + JoesGuns.addPositions([CompanyPositions.Employee]); + AddToCompanies(JoesGuns); + + var OmegaSoftware = new Company(); + OmegaSoftware.init(Locations.IshimaOmegaSoftware, 1.1, 1.1, 50); + OmegaSoftware.addPositions([ + CompanyPositions.SoftwareIntern, CompanyPositions.JuniorDev, CompanyPositions.SeniorDev, + CompanyPositions.LeadDev, CompanyPositions.ITIntern, CompanyPositions.ITAnalyst, + CompanyPositions.ITManager, CompanyPositions.CTO, CompanyPositions.CEO]); + AddToCompanies(OmegaSoftware); + + /* Companies that do not have servers */ + var NoodleBar = new Company(); + NoodleBar.init(Locations.NewTokyoNoodleBar, 1, 1, 0); + NoodleBar.addPositions([CompanyPositions.Waiter]); + AddToCompanies(NoodleBar); } //Map of all companies that exist in the game, indexed by their name @@ -752,6 +858,6 @@ Companies = {} //Add a Company object onto the map of all Companies in the game AddToCompanies = function (company) { - var name = company.companyName; - Companies[name] = company; + var name = company.companyName; + Companies[name] = company; } \ No newline at end of file diff --git a/src/CompanyJobApplication.js b/src/CompanyJobApplication.js new file mode 100644 index 000000000..e6413a84e --- /dev/null +++ b/src/CompanyJobApplication.js @@ -0,0 +1,81 @@ +/* Functions that handle applying for different jobs/positions in a Company */ + +PlayerObject.prototype.applyForSoftwareJob = function() { + var currCompany = Companies[this.companyName]; + var currPositionName = //TODO + var company = Companies[this.location]; //Company being applied to + + var pos = CompanyPositions.SoftwareIntern; + + while (true) { + if (Engine.Debug) {console.log("Determining qualification for next COmpany Position");} + var newPos = getNextCompanyPosition(pos); + if (newPos == null) { + if (Engine.Debug) { + console.log("Player already at highest position, cannot promote"); + } + break; + } + + if (!this.isQualified(company, newPos)) { + //If player not qualified for next job, break loop so player will be given current job + break; + } + pos = newPos; + } + + //Check if the determined job is the same as the player's current job + if (currCompany.companyName == company.companyName && + pos.positionName == ) + + //Lose reputation from old company b/c Player is leaving + If Player is not currently in this position, give it to him + +} + +PlayerObject.prototype.applyForItJob = function() { + +} + +PlayerObject.prototype.applyForSecurityEngineerJob = function() { + +} + +PlayerObject.prototype.applyForNetworkEngineerJob = function() { + +} + +PlayerObject.prototype.applyForSusinessJob = function() { + +} + +PlayerObject.prototype.applyForSecurityJob = function() { + +} + +PlayerObject.prototype.applyForAgentJob = function() { + +} + +PlayerObject.prototype.applyForEmployeeJob = function() { + +} + +PlayerObject.prototype.applyForWaiterJob = function() { + +} + +//Checks if the Player is qualified for a certain position +PlayerObject.prototype.isQualified = function(company, position) { + var offset = company.jobStatReqOffset; + if (this.hacking_skill >= position.requiredHacking+offset && + this.strength >= position.requiredStrength+offset && + this.defense >= position.requiredDefense+offset && + this.dexterity >= position.requiredDexterity+offset && + this.agility >= position.requiredAgility+offset && + this.charisma >= position.requiredCharisma+offset && + company.playerReputation >= position.requiredReputation) { + return true; + } + return false; +} \ No newline at end of file diff --git a/src/Location.js b/src/Location.js index c8a91d4ab..b3a9e22aa 100644 --- a/src/Location.js +++ b/src/Location.js @@ -20,7 +20,7 @@ Locations = { AevumGalacticCybersystems: "Galactic Cybersystems", AevumWatchdogSecurity: "Watchdog Security", AevumRhoConstruction: "Rho Construction", - AevumPolice: "Aevum Police HQ", + AevumPolice: "Aevum Police Headquarters", AevumNetLinkTechnologies: "NetLink Technologies", AevumCrushFitnessGym: "Crush Fitness Gym", AevumSnapFitnessGym: "Snap Fitness Gym", @@ -73,45 +73,59 @@ Locations = { } displayLocationContent = function() { - returnToWorld = document.getElementById("location-return-to-world-button"); - locationName = document.getElementById("location-name"); - locationInfo = document.getElementById("location-info"); + if (Engine.debug) { + console.log("displayLocationContent() called with location " + Player.location) + } + + var loc = Player.location; + + var returnToWorld = document.getElementById("location-return-to-world-button"); + returnToWorld.addEventListener("click", function() { + Engine.loadWorldContent(); + }); + + var locationName = document.getElementById("location-name"); + locationName.innerHTML = loc; + locationName.style.display = "block"; + + var locationInfo = document.getElementById("location-info"); + locationInfo.style.display = "block"; - softwareJob = document.getElementById("location-software-job"); - itJob = document.getElementById("location-it-job"); - securityEngineerJob = document.getElementById("location-security-engineer-job"); - networkEngineerJob = document.getElementById("location-network-engineer-job"); - businessJob = document.getElementById("location-business-job"); - securityJob = document.getElementById("location-security-job"); - agentJob = document.getElementById("location-agent-job"); - employeeJob = document.getElementById("location-employee-job"); - waiterJob = document.getElementById("location-waiter-job"); + var softwareJob = document.getElementById("location-software-job"); + var itJob = document.getElementById("location-it-job"); + var securityEngineerJob = document.getElementById("location-security-engineer-job"); + var networkEngineerJob = document.getElementById("location-network-engineer-job"); + var businessJob = document.getElementById("location-business-job"); + var securityJob = document.getElementById("location-security-job"); + var agentJob = document.getElementById("location-agent-job"); + var employeeJob = document.getElementById("location-employee-job"); + var waiterJob = document.getElementById("location-waiter-job"); - work = document.getElementById("location-work"); + var work = document.getElementById("location-work"); - gymTrainStr = document.getElementById("location-gym-train-str"); - gymTrainDef = document.getElementById("location-gym-train-def"); - gymTrainDex = document.getElementById("location-gym-train-dex"); - gymTrainAgi = document.getElementById("location-gym-train-agi"); - - purchase1gb = document.getElementById("location-purchase-1gb"); - purchase2gb = document.getElementById("location-purchase-2gb"); - purchase4gb = document.getElementById("location-purchase-4gb"); - purchase8gb = document.getElementById("location-purchase-8gb"); - purchase16gb = document.getElementById("location-purchase-16gb"); - purchase32gb = document.getElementById("location-purchase-32gb"); - purchase64gb = document.getElementById("location-purchase-64gb"); - purchase128gb = document.getElementById("location-purchase-128gb"); - purchase256gb = document.getElementById("location-purchase-256gb"); - purchase512gb = document.getElementById("location-purchase-512gb"); - purchase1tb = document.getElementById("location-purchase-1tb"); - - travelToAevum = document.getElementById("location-travel-to-aevum"); - travelToChongqing = document.getElementById("location-travel-to-chongqing"); - travelToSector12 = document.getElementById("location-travel-to-sector12"); - travelToNewTokyo = document.getElementById("location-travel-to-newtokyo"); - travelToIshima = document.getElementById("location-travel-to-ishima"); - travelToVolhaven = document.getElementById("location-travel-to-volhaven"); + 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 purchase2gb = document.getElementById("location-purchase-2gb"); + var purchase4gb = document.getElementById("location-purchase-4gb"); + var purchase8gb = document.getElementById("location-purchase-8gb"); + var purchase16gb = document.getElementById("location-purchase-16gb"); + var purchase32gb = document.getElementById("location-purchase-32gb"); + var purchase64gb = document.getElementById("location-purchase-64gb"); + var purchase128gb = document.getElementById("location-purchase-128gb"); + var purchase256gb = document.getElementById("location-purchase-256gb"); + var purchase512gb = document.getElementById("location-purchase-512gb"); + var purchase1tb = document.getElementById("location-purchase-1tb"); + + var travelToAevum = document.getElementById("location-travel-to-aevum"); + var travelToChongqing = document.getElementById("location-travel-to-chongqing"); + var travelToSector12 = document.getElementById("location-travel-to-sector12"); + var travelToNewTokyo = document.getElementById("location-travel-to-newtokyo"); + var travelToIshima = document.getElementById("location-travel-to-ishima"); + var travelToVolhaven = document.getElementById("location-travel-to-volhaven"); softwareJob.style.display = "none"; itJob.style.display = "none"; @@ -149,301 +163,358 @@ displayLocationContent = function() { travelToIshima.style.display = "none"; travelToVolhaven.style.display = "none"; - switch (Player.location) { + switch (loc) { case Locations.AevumTravelAgency: - travelToChongqing.style.display = "inline"; - travelToSector12.style.display = "inline"; - travelToNewTokyo.style.display = "inline"; - travelToIshima.style.display = "inline"; - travelToVolhaven.style.display = "inline"; + travelToChongqing.style.display = "block"; + travelToSector12.style.display = "block"; + travelToNewTokyo.style.display = "block"; + travelToIshima.style.display = "block"; + travelToVolhaven.style.display = "block"; break; case Locations.AevumECorp: - softwareJob.style.display = "inline"; - itJob.style.display = "inline"; - securityEngineerJob.style.display = "inline"; - networkEngineerJob.style.display = "inline"; - businessJob.style.display = "inline"; - securityJob.style.display = "inline"; + locationInfo.innerHTML = Companies[loc].info; + + softwareJob.style.display = "block"; + itJob.style.display = "block"; + securityEngineerJob.style.display = "block"; + networkEngineerJob.style.display = "block"; + businessJob.style.display = "block"; + securityJob.style.display = "block"; break; case Locations.AevumBachmanAndAssociates: - softwareJob.style.display = "inline"; - itJob.style.display = "inline"; - securityEngineerJob.style.display = "inline"; - networkEngineerJob.style.display = "inline"; - businessJob.style.display = "inline"; - securityJob.style.display = "inline"; + locationInfo.innerHTML = Companies[loc].info; + + softwareJob.style.display = "block"; + itJob.style.display = "block"; + securityEngineerJob.style.display = "block"; + networkEngineerJob.style.display = "block"; + businessJob.style.display = "block"; + securityJob.style.display = "block"; break; case Locations.AevumClarkeIncorporated: - softwareJob.style.display = "inline"; - itJob.style.display = "inline"; - securityEngineerJob.style.display = "inline"; - networkEngineerJob.style.display = "inline"; - businessJob.style.display = "inline"; - securityJob.style.display = "inline"; + locationInfo.innerHTML = Companies[loc].info; + + softwareJob.style.display = "block"; + itJob.style.display = "block"; + securityEngineerJob.style.display = "block"; + networkEngineerJob.style.display = "block"; + businessJob.style.display = "block"; + securityJob.style.display = "block"; break; case Locations.AevumFulcrumTechnologies: - softwareJob.style.display = "inline"; - itJob.style.display = "inline"; - securityEngineerJob.style.display = "inline"; - networkEngineerJob.style.display = "inline"; - businessJob.style.display = "inline"; + locationInfo.innerHTML = Companies[loc].info; + + softwareJob.style.display = "block"; + itJob.style.display = "block"; + securityEngineerJob.style.display = "block"; + networkEngineerJob.style.display = "block"; + businessJob.style.display = "block"; break; case Locations.AevumAeroCorp: - softwareJob.style.display = "inline"; - itJob.style.display = "inline"; - securityEngineerJob.style.display = "inline"; - networkEngineerJob.style.display = "inline"; - businessJob.style.display = "inline"; - securityJob.style.display = "inline"; + locationInfo.innerHTML = Companies[loc].info; + + softwareJob.style.display = "block"; + itJob.style.display = "block"; + securityEngineerJob.style.display = "block"; + networkEngineerJob.style.display = "block"; + businessJob.style.display = "block"; + securityJob.style.display = "block"; break; case Locations.AevumGalacticCybersystems: - softwareJob.style.display = "inline"; - itJob.style.display = "inline"; - securityEngineerJob.style.display = "inline"; - networkEngineerJob.style.display = "inline"; - businessJob.style.display = "inline"; + locationInfo.innerHTML = Companies[loc].info; + + softwareJob.style.display = "block"; + itJob.style.display = "block"; + securityEngineerJob.style.display = "block"; + networkEngineerJob.style.display = "block"; + businessJob.style.display = "block"; break; case Locations.AevumWatchdogSecurity: - softwareJob.style.display = "inline"; - itJob.style.display = "inline"; - securityEngineerJob.style.display = "inline"; - networkEngineerJob.style.display = "inline"; - securityJob.style.display = "inline"; - agentJob.style.display = "inline"; + locationInfo.innerHTML = Companies[loc].info; + + softwareJob.style.display = "block"; + itJob.style.display = "block"; + securityEngineerJob.style.display = "block"; + networkEngineerJob.style.display = "block"; + securityJob.style.display = "block"; + agentJob.style.display = "block"; break; case Locations.AevumRhoConstruction: - softwareJob.style.display = "inline"; - businessJob.style.display = "inline"; + locationInfo.innerHTML = Companies[loc].info; + + softwareJob.style.display = "block"; + businessJob.style.display = "block"; break; case Locations.AevumPolice: - softwareJob.style.display = "inline"; - securityJob.style.display = "inline"; + locationInfo.innerHTML = Companies[loc].info; + + softwareJob.style.display = "block"; + securityJob.style.display = "block"; break; case Locations.AevumNetLinkTechnologies: - softwareJob.style.display = "inline"; - itJob.style.display = "inline"; - securityEngineerJob.style.display = "inline"; - networkEngineerJob.style.display = "inline"; + locationInfo.innerHTML = Companies[loc].info; + + softwareJob.style.display = "block"; + itJob.style.display = "block"; + securityEngineerJob.style.display = "block"; + networkEngineerJob.style.display = "block"; break; case Locations.AevumCrushFitnessGym: - gymTrainStr.style.display = "inline"; - gymTrainDef.style.display = "inline"; - gymTrainDex.style.display = "inline"; - gymTrainAgi.style.display = "inline"; + gymTrainStr.style.display = "block"; + gymTrainDef.style.display = "block"; + gymTrainDex.style.display = "block"; + gymTrainAgi.style.display = "block"; break; - case Locations.AevumSnapFitnessGym: - gymTrainStr.style.display = "inline"; - gymTrainDef.style.display = "inline"; - gymTrainDex.style.display = "inline"; - gymTrainAgi.style.display = "inline"; + case Locations.AevumSnapFitnessGym: + gymTrainStr.style.display = "block"; + gymTrainDef.style.display = "block"; + gymTrainDex.style.display = "block"; + gymTrainAgi.style.display = "block"; break; - case Locations.ChongqingTravelAgency: - travelToAevum.style.display = "inline"; - travelToSector12.style.display = "inline"; - travelToNewTokyo.style.display = "inline"; - travelToIshima.style.display = "inline"; - travelToVolhaven.style.display = "inline"; + travelToAevum.style.display = "block"; + travelToSector12.style.display = "block"; + travelToNewTokyo.style.display = "block"; + travelToIshima.style.display = "block"; + travelToVolhaven.style.display = "block"; break; case Locations.ChongqingKuaiGongInternational: - softwareJob.style.display = "inline"; - itJob.style.display = "inline"; - securityEngineerJob.style.display = "inline"; - networkEngineerJob.style.display = "inline"; - businessJob.style.display = "inline"; - securityJob.style.display = "inline"; + locationInfo.innerHTML = Companies[loc].info; + + softwareJob.style.display = "block"; + itJob.style.display = "block"; + securityEngineerJob.style.display = "block"; + networkEngineerJob.style.display = "block"; + businessJob.style.display = "block"; + securityJob.style.display = "block"; break; case Locations.ChongqingSolarisSpaceSystems: - softwareJob.style.display = "inline"; - itJob.style.display = "inline"; - securityEngineerJob.style.display = "inline"; - networkEngineerJob.style.display = "inline"; - businessJob.style.display = "inline"; - securityJob.style.display = "inline"; + locationInfo.innerHTML = Companies[loc].info; + + softwareJob.style.display = "block"; + itJob.style.display = "block"; + securityEngineerJob.style.display = "block"; + networkEngineerJob.style.display = "block"; + businessJob.style.display = "block"; + securityJob.style.display = "block"; break; case Locations.Sector12TravelAgency: - travelToAevum.style.display = "inline"; - travelToChongqing.style.display = "inline"; - travelToNewTokyo.style.display = "inline"; - travelToIshima.style.display = "inline"; - travelToVolhaven.style.display = "inline"; + travelToAevum.style.display = "block"; + travelToChongqing.style.display = "block"; + travelToNewTokyo.style.display = "block"; + travelToIshima.style.display = "block"; + travelToVolhaven.style.display = "block"; break; case Locations.Sector12MegaCorp: - softwareJob.style.display = "inline"; - itJob.style.display = "inline"; - securityEngineerJob.style.display = "inline"; - networkEngineerJob.style.display = "inline"; - businessJob.style.display = "inline"; - securityJob.style.display = "inline"; + locationInfo.innerHTML = Companies[loc].info; + + softwareJob.style.display = "block"; + itJob.style.display = "block"; + securityEngineerJob.style.display = "block"; + networkEngineerJob.style.display = "block"; + businessJob.style.display = "block"; + securityJob.style.display = "block"; break; - case Locations.Sector12BladeIndustries: - softwareJob.style.display = "inline"; - itJob.style.display = "inline"; - securityEngineerJob.style.display = "inline"; - networkEngineerJob.style.display = "inline"; - businessJob.style.display = "inline"; - securityJob.style.display = "inline"; + case Locations.Sector12BladeIndustries: + locationInfo.innerHTML = Companies[loc].info; + + softwareJob.style.display = "block"; + itJob.style.display = "block"; + securityEngineerJob.style.display = "block"; + networkEngineerJob.style.display = "block"; + businessJob.style.display = "block"; + securityJob.style.display = "block"; break; case Locations.Sector12FourSigma: - softwareJob.style.display = "inline"; - itJob.style.display = "inline"; - securityEngineerJob.style.display = "inline"; - networkEngineerJob.style.display = "inline"; - businessJob.style.display = "inline"; - securityJob.style.display = "inline"; + locationInfo.innerHTML = Companies[loc].info; + + softwareJob.style.display = "block"; + itJob.style.display = "block"; + securityEngineerJob.style.display = "block"; + networkEngineerJob.style.display = "block"; + businessJob.style.display = "block"; + securityJob.style.display = "block"; break; case Locations.Sector12IcarusMicrosystems: - softwareJob.style.display = "inline"; - itJob.style.display = "inline"; - securityEngineerJob.style.display = "inline"; - networkEngineerJob.style.display = "inline"; - businessJob.style.display = "inline"; + locationInfo.innerHTML = Companies[loc].info; + + softwareJob.style.display = "block"; + itJob.style.display = "block"; + securityEngineerJob.style.display = "block"; + networkEngineerJob.style.display = "block"; + businessJob.style.display = "block"; break; case Locations.Sector12UniversalEnergy: - softwareJob.style.display = "inline"; - itJob.style.display = "inline"; - securityEngineerJob.style.display = "inline"; - networkEngineerJob.style.display = "inline"; - businessJob.style.display = "inline"; + locationInfo.innerHTML = Companies[loc].info; + + softwareJob.style.display = "block"; + itJob.style.display = "block"; + securityEngineerJob.style.display = "block"; + networkEngineerJob.style.display = "block"; + businessJob.style.display = "block"; break; case Locations.Sector12DeltaOne: - softwareJob.style.display = "inline"; - itJob.style.display = "inline"; - securityEngineerJob.style.display = "inline"; - networkEngineerJob.style.display = "inline"; - businessJob.style.display = "inline"; - securityJob.style.display = "inline"; + locationInfo.innerHTML = Companies[loc].info; + + softwareJob.style.display = "block"; + itJob.style.display = "block"; + securityEngineerJob.style.display = "block"; + networkEngineerJob.style.display = "block"; + businessJob.style.display = "block"; + securityJob.style.display = "block"; break; case Locations.Sector12CIA: - softwareJob.style.display = "inline"; - itJob.style.display = "inline"; - securityEngineerJob.style.display = "inline"; - networkEngineerJob.style.display = "inline"; - securityJob.style.display = "inline"; - agentJob.style.display = "inline"; + locationInfo.innerHTML = Companies[loc].info; + + softwareJob.style.display = "block"; + itJob.style.display = "block"; + securityEngineerJob.style.display = "block"; + networkEngineerJob.style.display = "block"; + securityJob.style.display = "block"; + agentJob.style.display = "block"; break; case Locations.Sector12NSA: - softwareJob.style.display = "inline"; - itJob.style.display = "inline"; - securityEngineerJob.style.display = "inline"; - networkEngineerJob.style.display = "inline"; - securityJob.style.display = "inline"; - agentJob.style.display = "inline"; + locationInfo.innerHTML = Companies[loc].info; + + softwareJob.style.display = "block"; + itJob.style.display = "block"; + securityEngineerJob.style.display = "block"; + networkEngineerJob.style.display = "block"; + securityJob.style.display = "block"; + agentJob.style.display = "block"; break; case Locations.Sector12AlphaEnterprises: - softwareJob.style.display = "inline"; - businessJob.style.display = "inline"; + locationInfo.innerHTML = Companies[loc].info; + + softwareJob.style.display = "block"; + businessJob.style.display = "block"; break; case Locations.Sector12CarmichaelSecurity: - softwareJob.style.display = "inline"; - itJob.style.display = "inline"; - securityEngineerJob.style.display = "inline"; - networkEngineerJob.style.display = "inline"; - securityJob.style.display = "inline"; - agentJob.style.display = "inline"; + locationInfo.innerHTML = Companies[loc].info; + + softwareJob.style.display = "block"; + itJob.style.display = "block"; + securityEngineerJob.style.display = "block"; + networkEngineerJob.style.display = "block"; + securityJob.style.display = "block"; + agentJob.style.display = "block"; break; case Locations.Sector12FoodNStuff: - employeeJob.style.display = "inline"; + locationInfo.innerHTML = Companies[loc].info; + + employeeJob.style.display = "block"; break; case Locations.Sector12JoesGuns: - employeeJob.style.display = "inline"; + locationInfo.innerHTML = Companies[loc].info; + + employeeJob.style.display = "block"; break; case Locations.Sector12IronGym: - gymTrainStr.style.display = "inline"; - gymTrainDef.style.display = "inline"; - gymTrainDex.style.display = "inline"; - gymTrainAgi.style.display = "inline"; + gymTrainStr.style.display = "block"; + gymTrainDef.style.display = "block"; + gymTrainDex.style.display = "block"; + gymTrainAgi.style.display = "block"; break; case Location.Sector12PowerhouseGym: - gymTrainStr.style.display = "inline"; - gymTrainDef.style.display = "inline"; - gymTrainDex.style.display = "inline"; - gymTrainAgi.style.display = "inline"; + gymTrainStr.style.display = "block"; + gymTrainDef.style.display = "block"; + gymTrainDex.style.display = "block"; + gymTrainAgi.style.display = "block"; break; case Locations.NewTokyoTravelAgency: - travelToAevum.style.display = "inline"; - travelToChongqing.style.display = "inline"; - travelToSector12.style.display = "inline"; - travelToIshima.style.display = "inline"; - travelToVolhaven.style.display = "inline"; + travelToAevum.style.display = "block"; + travelToChongqing.style.display = "block"; + travelToSector12.style.display = "block"; + travelToIshima.style.display = "block"; + travelToVolhaven.style.display = "block"; break; - case Locations.NewTokyoDefComm: - softwareJob.style.display = "inline"; - itJob.style.display = "inline"; - securityEngineerJob.style.display = "inline"; - networkEngineerJob.style.display = "inline"; - businessJob.style.display = "inline"; + case Locations.NewTokyoDefComm: + locationInfo.innerHTML = Companies[loc].info; + + softwareJob.style.display = "block"; + itJob.style.display = "block"; + securityEngineerJob.style.display = "block"; + networkEngineerJob.style.display = "block"; + businessJob.style.display = "block"; break; case Locations.NewTokyoVitaLife: - softwareJob.style.display = "inline"; - itJob.style.display = "inline"; - securityEngineerJob.style.display = "inline"; - networkEngineerJob.style.display = "inline"; - businessJob.style.display = "inline"; + locationInfo.innerHTML = Companies[loc].info; + + softwareJob.style.display = "block"; + itJob.style.display = "block"; + securityEngineerJob.style.display = "block"; + networkEngineerJob.style.display = "block"; + businessJob.style.display = "block"; break; case Locations.NewTokyoGlobalPharmaceuticals: - softwareJob.style.display = "inline"; - itJob.style.display = "inline"; - securityEngineerJob.style.display = "inline"; - networkEngineerJob.style.display = "inline"; - businessJob.style.display = "inline"; - securityJob.style.display = "inline"; + locationInfo.innerHTML = Companies[loc].info; + + softwareJob.style.display = "block"; + itJob.style.display = "block"; + securityEngineerJob.style.display = "block"; + networkEngineerJob.style.display = "block"; + businessJob.style.display = "block"; + securityJob.style.display = "block"; break; - case Locations.NewTokyoNoodleBar: - waiterJob.style.display = "inline"; + case Locations.NewTokyoNoodleBar: + locationInfo.innerHTML = Companies[loc].info; + + waiterJob.style.display = "block"; break; case Locations.IshimaTravelAgency: - travelToAevum.style.display = "inline"; - travelToChongqing.style.display = "inline"; - travelToSector12.style.display = "inline"; - travelToNewTokyo.style.display = "inline"; - travelToVolhaven.style.display = "inline"; + travelToAevum.style.display = "block"; + travelToChongqing.style.display = "block"; + travelToSector12.style.display = "block"; + travelToNewTokyo.style.display = "block"; + travelToVolhaven.style.display = "block"; break; case Locations.IshimaStormTechnologies: - softwareJob.style.display = "inline"; - itJob.style.display = "inline"; - securityEngineerJob.style.display = "inline"; - networkEngineerJob.style.display = "inline"; - businessJob.style.display = "inline"; + locationInfo.innerHTML = Companies[loc].info; + + softwareJob.style.display = "block"; + itJob.style.display = "block"; + securityEngineerJob.style.display = "block"; + networkEngineerJob.style.display = "block"; + businessJob.style.display = "block"; securityJob.style.display = "none"; agentJob.style.display = "none"; employeeJob.style.display = "none"; @@ -451,90 +522,110 @@ displayLocationContent = function() { break; case Locations.IshimaNovaMedical: - softwareJob.style.display = "inline"; - itJob.style.display = "inline"; - securityEngineerJob.style.display = "inline"; - networkEngineerJob.style.display = "inline"; - businessJob.style.display = "inline"; + locationInfo.innerHTML = Companies[loc].info; + + softwareJob.style.display = "block"; + itJob.style.display = "block"; + securityEngineerJob.style.display = "block"; + networkEngineerJob.style.display = "block"; + businessJob.style.display = "block"; break; case Locations.IshimaOmegaSoftware: - softwareJob.style.display = "inline"; - itJob.style.display = "inline"; - businessJob.style.display = "inline"; + locationInfo.innerHTML = Companies[loc].info; + + softwareJob.style.display = "block"; + itJob.style.display = "block"; + businessJob.style.display = "block"; break; - case Locations.VolhavenTravelAgency: - travelToAevum.style.display = "inline"; - travelToChongqing.style.display = "inline"; - travelToSector12.style.display = "inline"; - travelToNewTokyo.style.display = "inline"; - travelToIshima.style.display = "inline"; + case Locations.VolhavenTravelAgency: + locationInfo.innerHTML = Companies[loc].info; + + travelToAevum.style.display = "block"; + travelToChongqing.style.display = "block"; + travelToSector12.style.display = "block"; + travelToNewTokyo.style.display = "block"; + travelToIshima.style.display = "block"; break; case Locations.VolhavenOmniTekIncorporated: - softwareJob.style.display = "inline"; - itJob.style.display = "inline"; - securityEngineerJob.style.display = "inline"; - networkEngineerJob.style.display = "inline"; - businessJob.style.display = "inline"; - securityJob.style.display = "inline"; + locationInfo.innerHTML = Companies[loc].info; + + softwareJob.style.display = "block"; + itJob.style.display = "block"; + securityEngineerJob.style.display = "block"; + networkEngineerJob.style.display = "block"; + businessJob.style.display = "block"; + securityJob.style.display = "block"; break; case Locations.VolhavenNWO: - softwareJob.style.display = "inline"; - itJob.style.display = "inline"; - securityEngineerJob.style.display = "inline"; - networkEngineerJob.style.display = "inline"; - businessJob.style.display = "inline"; - securityJob.style.display = "inline"; + locationInfo.innerHTML = Companies[loc].info; + + softwareJob.style.display = "block"; + itJob.style.display = "block"; + securityEngineerJob.style.display = "block"; + networkEngineerJob.style.display = "block"; + businessJob.style.display = "block"; + securityJob.style.display = "block"; break; case Locations.VolhavenHeliosLabs: - softwareJob.style.display = "inline"; - itJob.style.display = "inline"; - securityEngineerJob.style.display = "inline"; - networkEngineerJob.style.display = "inline"; - businessJob.style.display = "inline"; + locationInfo.innerHTML = Companies[loc].info; + + softwareJob.style.display = "block"; + itJob.style.display = "block"; + securityEngineerJob.style.display = "block"; + networkEngineerJob.style.display = "block"; + businessJob.style.display = "block"; break; case Locations.VolhavenOmniaCybersystems: - softwareJob.style.display = "inline"; - itJob.style.display = "inline"; - securityEngineerJob.style.display = "inline"; - networkEngineerJob.style.display = "inline"; - businessJob.style.display = "inline"; - securityJob.style.display = "inline"; + locationInfo.innerHTML = Companies[loc].info; + + softwareJob.style.display = "block"; + itJob.style.display = "block"; + securityEngineerJob.style.display = "block"; + networkEngineerJob.style.display = "block"; + businessJob.style.display = "block"; + securityJob.style.display = "block"; break; case Locations.VolhavenLexoCorp: - softwareJob.style.display = "inline"; - itJob.style.display = "inline"; - securityEngineerJob.style.display = "inline"; - networkEngineerJob.style.display = "inline"; - businessJob.style.display = "inline"; - securityJob.style.display = "inline"; + locationInfo.innerHTML = Companies[loc].info; + + softwareJob.style.display = "block"; + itJob.style.display = "block"; + securityEngineerJob.style.display = "block"; + networkEngineerJob.style.display = "block"; + businessJob.style.display = "block"; + securityJob.style.display = "block"; break; case Locations.VolhavenSysCoreSecurities: - softwareJob.style.display = "inline"; - itJob.style.display = "inline"; - securityEngineerJob.style.display = "inline"; - networkEngineerJob.style.display = "inline"; + locationInfo.innerHTML = Companies[loc].info; + + softwareJob.style.display = "block"; + itJob.style.display = "block"; + securityEngineerJob.style.display = "block"; + networkEngineerJob.style.display = "block"; break; case Locations.VolhavenCompuTek: - softwareJob.style.display = "inline"; - itJob.style.display = "inline"; - securityEngineerJob.style.display = "inline"; - networkEngineerJob.style.display = "inline"; + locationInfo.innerHTML = Companies[loc].info; + + softwareJob.style.display = "block"; + itJob.style.display = "block"; + securityEngineerJob.style.display = "block"; + networkEngineerJob.style.display = "block"; break; case Locations.VolhavenMilleniumFitnessGym: - gymTrainStr.style.display = "inline"; - gymTrainDef.style.display = "inline"; - gymTrainDex.style.display = "inline"; - gymTrainAgi.style.display = "inline"; + gymTrainStr.style.display = "block"; + gymTrainDef.style.display = "block"; + gymTrainDex.style.display = "block"; + gymTrainAgi.style.display = "block"; break; } @@ -595,7 +686,7 @@ initLocationButtons = function() { Engine.loadLocationContent(); }); - aevumPolice = document.getElementById("aevum-police"); + aevumPolice = document.getElementById("aevum-aevumpolice"); aevumPolice.addEventListener("click", function() { Player.location = Locations.AevumPolice; Engine.loadLocationContent(); @@ -618,5 +709,220 @@ initLocationButtons = function() { Player.location = Locations.AevumSnapFitnessGym; Engine.loadLocationContent(); }); + + chongqingTravelAgency = document.getElementById("chongqing-travelagency"); + chongqingTravelAgency.addEventListener("click", function() { + Player.location = Locations.ChongqingTravelAgency; + Engine.loadLocationContent(); + }); + + chongqingKuaiGongInternational = document.getElementById("chongqing-kuaigonginternational"); + chongqingKuaiGongInternational.addEventListener("click", function() { + Player.location = Locations.ChongqingKuaiGongInternational; + Engine.loadLocationContent(); + }); + + chongqingSolarisSpaceSystems = document.getElementById("chongqing-solarisspacesystems"); + chongqingSolarisSpaceSystems.addEventListener("click", function() { + Player.location = Locations.ChongqingSolarisSpaceSystems; + Engine.loadLocationContent(); + }); + + sector12TravelAgency = document.getElementById("sector12-travelagency"); + sector12TravelAgency.addEventListener("click", function() { + Player.location = Locations.Sector12TravelAgency; + Engine.loadLocationContent(); + }); + + sector12MegaCorp = document.getElementById("sector12-megacorp"); + sector12MegaCorp.addEventListener("click", function() { + Player.location = Locations.Sector12MegaCorp; + Engine.loadLocationContent(); + }); + + sector12BladeIndustries = document.getElementById("sector12-bladeindustries"); + sector12BladeIndustries.addEventListener("click", function() { + Player.location = Locations.Sector12BladeIndustries; + Engine.loadLocationContent(); + }); + + sector12FourSigma = document.getElementById("sector12-foursigma"); + sector12FourSigma.addEventListener("click", function() { + Player.location = Locations.Sector12FourSigma; + Engine.loadLocationContent(); + }); + + sector12IcarusMicrosystems = document.getElementById("sector12-icarusmicrosystems"); + sector12IcarusMicrosystems.addEventListener("click", function() { + Player.location = Locations.Sector12IcarusMicrosystems; + Engine.loadLocationContent(); + }); + + sector12UniversalEnergy = document.getElementById("sector12-universalenergy"); + sector12UniversalEnergy.addEventListener("click", function() { + Player.location = Locations.Sector12UniversalEnergy; + Engine.loadLocationContent(); + }); + + sector12DeltaOne = document.getElementById("sector12-deltaone"); + sector12DeltaOne.addEventListener("click", function() { + Player.location = Locations.Sector12DeltaOne; + Engine.loadLocationContent(); + }); + + sector12CIA = document.getElementById("sector12-cia"); + sector12CIA.addEventListener("click", function() { + Player.location = Locations.Sector12CIA; + Engine.loadLocationContent(); + }); + + sector12NSA = document.getElementById("sector12-nsa"); + sector12NSA.addEventListener("click", function() { + Player.location = Locations.Sector12NSA; + Engine.loadLocationContent(); + }); + + sector12AlphaEnterprises = document.getElementById("sector12-alphaenterprises"); + sector12AlphaEnterprises.addEventListener("click", function() { + Player.location = Locations.Sector12AlphaEnterprises; + Engine.loadLocationContent(); + }); + + sector12CarmichaelSecurity = document.getElementById("sector12-carmichaelsecurity"); + sector12CarmichaelSecurity.addEventListener("click", function() { + Player.location = Locations.Sector12CarmichaelSecurity; + Engine.loadLocationContent(); + }); + + sector12FoodNStuff = document.getElementById("sector12-foodnstuff"); + sector12FoodNStuff.addEventListener("click", function() { + Player.location = Locations.Sector12FoodNStuff; + Engine.loadLocationContent(); + }); + + sector12JoesGuns = document.getElementById("sector12-joesguns"); + sector12JoesGuns.addEventListener("click", function() { + Player.location = Locations.Sector12JoesGuns; + Engine.loadLocationContent(); + }); + + sector12IronGym = document.getElementById("sector12-irongym"); + sector12IronGym.addEventListener("click", function() { + Player.location = Locations.Sector12IronGym; + Engine.loadLocationContent(); + }); + + sector12PowerhouseGym = document.getElementById("sector12-powerhousegym"); + sector12PowerhouseGym.addEventListener("click", function() { + Player.location = Locations.Sector12PowerhouseGym; + Engine.loadLocationContent(); + }); + + newTokyoTravelAgency = document.getElementById("newtokyo-travelagency"); + newTokyoTravelAgency.addEventListener("click", function() { + Player.location = Locations.NewTokyoTravelAgency; + Engine.loadLocationContent(); + }); + + newTokyoDefComm = document.getElementById("newtokyo-defcomm"); + newTokyoDefComm.addEventListener("click", function() { + Player.location = Locations.NewTokyoDefComm; + Engine.loadLocationContent(); + }); + + newTokyoVitaLife = document.getElementById("newtokyo-vitalife"); + newTokyoVitaLife.addEventListener("click", function() { + Player.location = Locations.NewTokyoVitaLife; + Engine.loadLocationContent(); + }); + + newTokyoGlobalPharmaceuticals = document.getElementById("newtokyo-globalpharmaceuticals"); + newTokyoGlobalPharmaceuticals.addEventListener("click", function() { + Player.location = Locations.NewTokyoGlobalPharmaceuticals; + Engine.loadLocationContent(); + }); + newTokyoNoodleBar = document.getElementById("newtokyo-noodlebar"); + newTokyoNoodleBar.addEventListener("click", function() { + Player.location = Locations.NewTokyoNoodleBar; + Engine.loadLocationContent(); + }); + + ishimaTravelAgency = document.getElementById("ishima-travelagency"); + ishimaTravelAgency.addEventListener("click", function() { + Player.location = Locations.IshimaTravelAgency; + Engine.loadLocationContent(); + }); + + ishimaStormTechnologies = document.getElementById("ishima-stormtechnologies"); + ishimaStormTechnologies.addEventListener("click", function() { + Player.location = Locations.IshimaStormTechnologies; + Engine.loadLocationContent(); + }); + + ishimaNovaMedical = document.getElementById("ishima-novamedical"); + ishimaNovaMedical.addEventListener("click", function() { + Player.location = Locations.IshimaNovaMedical; + Engine.loadLocationContent(); + }); + + ishimaOmegaSoftware = document.getElementById("ishima-omegasoftware"); + ishimaOmegaSoftware.addEventListener("click", function() { + Player.location = Locations.IshimaOmegaSoftware; + Engine.loadLocationContent(); + }); + + volhavenTravelAgency = document.getElementById("volhaven-travelagency"); + volhavenTravelAgency.addEventListener("click", function() { + Player.location = Locations.VolhavenTravelAgency; + Engine.loadLocationContent(); + }); + + volhavenOmniTekIncorporated = document.getElementById("volhaven-omnitekincorporated"); + volhavenOmniTekIncorporated.addEventListener("click", function() { + Player.location = Locations.VolhavenOmniTekIncorporated; + Engine.loadLocationContent(); + }); + + volhavenNWO = document.getElementById("volhaven-nwo"); + volhavenNWO.addEventListener("click", function() { + Player.location = Locations.VolhavenNWO; + Engine.loadLocationContent(); + }); + + volhavenHeliosLabs = document.getElementById("volhaven-helioslabs"); + volhavenHeliosLabs.addEventListener("click", function() { + Player.location = Locations.VolhavenHeliosLabs; + Engine.loadLocationContent(); + }); + + volhavenOmniaCybersystems = document.getElementById("volhaven-omniacybersystems"); + volhavenOmniaCybersystems.addEventListener("click", function() { + Player.location = Locations.VolhavenOmniaCybersystems; + Engine.loadLocationContent(); + }); + + volhavenLexoCorp = document.getElementById("volhaven-lexocorp"); + volhavenLexoCorp.addEventListener("click", function() { + Player.location = Locations.VolhavenLexoCorp; + Engine.loadLocationContent(); + }); + + volhavenSysCoreSecurities = document.getElementById("volhaven-syscoresecurities"); + volhavenSysCoreSecurities.addEventListener("click", function() { + Player.location = Locations.VolhavenSysCoreSecurities; + Engine.loadLocationContent(); + }); + + volhavenCompuTek = document.getElementById("volhaven-computek"); + volhavenCompuTek.addEventListener("click", function() { + Player.location = Locations.VolhavenCompuTek; + Engine.loadLocationContent(); + }); + + volhavenMilleniumFitnessGym = document.getElementById("volhaven-milleniumfitnessgym"); + volhavenMilleniumFitnessGym.addEventListener("click", function() { + Player.location = Locations.VolhavenMilleniumFitnessGym; + Engine.loadLocationContent(); + }); } \ No newline at end of file diff --git a/src/Player.js b/src/Player.js index 365caeec4..09cf96474 100644 --- a/src/Player.js +++ b/src/Player.js @@ -65,7 +65,7 @@ function PlayerObject() { //Company Information this.companyName = ""; - this.companyJob = ""; + this.companyJob = ""; //Name of current Company Position //Servers this.currentServer = ""; //IP address of Server currently being accessed through terminal diff --git a/src/engine.js b/src/engine.js index 2f707f3d7..653a69e01 100644 --- a/src/engine.js +++ b/src/engine.js @@ -651,6 +651,9 @@ var Engine = { //Location page (page that shows up when you visit a specific location in World) Engine.Display.locationContent = document.getElementById("location-container"); Engine.Display.locationContent.style.visibility = "hidden"; + + //Init Location buttons + initLocationButtons(); //Script editor Engine.Display.scriptEditorText = document.getElementById("script-editor-text");