From 8b6dba561cfc4c2f24922c82b5be0bccfaca47a6 Mon Sep 17 00:00:00 2001 From: danielyxie Date: Sun, 30 Jul 2017 14:11:30 -0500 Subject: [PATCH] Crime and job balancing. Fixed some formatting bugs --- css/menupages.css | 11 +++++- src/Company.js | 76 +++++++++++++++++++++--------------------- src/Constants.js | 4 +-- src/Crimes.js | 58 ++++++++++++++++---------------- src/NetscriptWorker.js | 2 +- src/Server.js | 4 +-- 6 files changed, 82 insertions(+), 73 deletions(-) diff --git a/css/menupages.css b/css/menupages.css index 480d69c34..c00fc1a34 100644 --- a/css/menupages.css +++ b/css/menupages.css @@ -406,12 +406,21 @@ div.faction-clear { clear: both; } -#faction-container p { +#faction-container p, +#faction-container pre { padding: 6px; margin: 6px; width: 70%; } +#faction-info { + white-space: pre-wrap; /* Since CSS 2.1 */ + white-space: -moz-pre-wrap; /* Mozilla, since 1999 */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + word-wrap: break-word; /* Internet Explorer 5.5+ */ +} + /* Faction Augmentations */ #faction-augmentations-container{ position: fixed; diff --git a/src/Company.js b/src/Company.js index 78839ccb2..d927a5a38 100644 --- a/src/Company.js +++ b/src/Company.js @@ -229,58 +229,58 @@ CompanyPositions = { //Constructor: CompanyPosition(name, reqHack, reqStr, reqDef, reqDex, reqAgi, reqCha, reqRep, salary) //Software - SoftwareIntern: new CompanyPosition("Software Engineering Intern", 1, 0, 0, 0, 0, 0, 0, 13), - JuniorDev: new CompanyPosition("Junior Software Engineer", 51, 0, 0, 0, 0, 0, 8000, 32), - SeniorDev: new CompanyPosition("Senior Software Engineer", 251, 0, 0, 0, 0, 51, 40000, 63), - LeadDev: new CompanyPosition("Lead Software Developer", 401, 0, 0, 0, 0, 151, 200000, 210), + SoftwareIntern: new CompanyPosition("Software Engineering Intern", 1, 0, 0, 0, 0, 0, 0, 15), + JuniorDev: new CompanyPosition("Junior Software Engineer", 51, 0, 0, 0, 0, 0, 8000, 35), + SeniorDev: new CompanyPosition("Senior Software Engineer", 251, 0, 0, 0, 0, 51, 40000, 70), + LeadDev: new CompanyPosition("Lead Software Developer", 401, 0, 0, 0, 0, 151, 200000, 230), //TODO Through darkweb, maybe? FreelanceDeveloper: new CompanyPosition("Freelance Developer", 0, 0, 0, 0, 0, 0, 0, 0), - SoftwareConsultant: new CompanyPosition("Software Consultant", 51, 0, 0, 0, 0, 0, 0, 22), - SeniorSoftwareConsultant: new CompanyPosition("Senior Software Consultant", 251, 0, 0, 0, 0, 51, 0, 45), + SoftwareConsultant: new CompanyPosition("Software Consultant", 51, 0, 0, 0, 0, 0, 0, 25), + SeniorSoftwareConsultant: new CompanyPosition("Senior Software Consultant", 251, 0, 0, 0, 0, 51, 0, 50), //IT - ITIntern: new CompanyPosition("IT Intern", 1, 0, 0, 0, 0, 0, 0, 11), - ITAnalyst: new CompanyPosition("IT Analyst", 26, 0, 0, 0, 0, 0, 7000, 25), - ITManager: new CompanyPosition("IT Manager", 151, 0, 0, 0, 0, 51, 35000, 48), - SysAdmin: new CompanyPosition("Systems Administrator", 251, 0, 0, 0, 0, 76, 175000, 165), - SecurityEngineer: new CompanyPosition("Security Engineer", 151, 0, 0, 0, 0, 26, 35000, 55), - NetworkEngineer: new CompanyPosition("Network Engineer", 151, 0, 0, 0, 0, 26, 35000, 55), - NetworkAdministrator: new CompanyPosition("Network Administrator", 251, 0, 0, 0, 0, 76, 175000, 165), + ITIntern: new CompanyPosition("IT Intern", 1, 0, 0, 0, 0, 0, 0, 13), + ITAnalyst: new CompanyPosition("IT Analyst", 26, 0, 0, 0, 0, 0, 7000, 28), + ITManager: new CompanyPosition("IT Manager", 151, 0, 0, 0, 0, 51, 35000, 60), + SysAdmin: new CompanyPosition("Systems Administrator", 251, 0, 0, 0, 0, 76, 175000, 180), + SecurityEngineer: new CompanyPosition("Security Engineer", 151, 0, 0, 0, 0, 26, 35000, 60), + NetworkEngineer: new CompanyPosition("Network Engineer", 151, 0, 0, 0, 0, 26, 35000, 60), + NetworkAdministrator: new CompanyPosition("Network Administrator", 251, 0, 0, 0, 0, 76, 175000, 180), //Technology management - HeadOfSoftware: new CompanyPosition("Head of Software", 501, 0, 0, 0, 0, 251, 400000, 330), - HeadOfEngineering: new CompanyPosition("Head of Engineering", 501, 0, 0, 0, 0, 251, 800000, 660), - VicePresident: new CompanyPosition("Vice President of Technology", 601, 0, 0, 0, 0, 401, 1600000, 990), - CTO: new CompanyPosition("Chief Technology Officer", 751, 0, 0, 0, 0, 501, 3200000, 1100), + HeadOfSoftware: new CompanyPosition("Head of Software", 501, 0, 0, 0, 0, 251, 400000, 360), + HeadOfEngineering: new CompanyPosition("Head of Engineering", 501, 0, 0, 0, 0, 251, 800000, 725), + VicePresident: new CompanyPosition("Vice President of Technology", 601, 0, 0, 0, 0, 401, 1600000, 1050), + CTO: new CompanyPosition("Chief Technology Officer", 751, 0, 0, 0, 0, 501, 3200000, 1200), //Business - BusinessIntern: new CompanyPosition("Business Intern", 1, 0, 0, 0, 0, 1, 0, 18), - BusinessAnalyst: new CompanyPosition("Business Analyst", 6, 0, 0, 0, 0, 51, 8000, 42), - BusinessManager: new CompanyPosition("Business Manager", 51, 0, 0, 0, 0, 101, 40000, 84), - OperationsManager: new CompanyPosition("Operations Manager", 51, 0, 0, 0, 0, 226, 200000, 275), - CFO: new CompanyPosition("Chief Financial Officer", 76, 0, 0, 0, 0, 501, 800000, 800), - CEO: new CompanyPosition("Chief Executive Officer", 101, 0, 0, 0, 0, 751, 3200000, 1500), + BusinessIntern: new CompanyPosition("Business Intern", 1, 0, 0, 0, 0, 1, 0, 20), + BusinessAnalyst: new CompanyPosition("Business Analyst", 6, 0, 0, 0, 0, 51, 8000, 46), + BusinessManager: new CompanyPosition("Business Manager", 51, 0, 0, 0, 0, 101, 40000, 92), + OperationsManager: new CompanyPosition("Operations Manager", 51, 0, 0, 0, 0, 226, 200000, 300), + CFO: new CompanyPosition("Chief Financial Officer", 76, 0, 0, 0, 0, 501, 800000, 900), + CEO: new CompanyPosition("Chief Executive Officer", 101, 0, 0, 0, 0, 751, 3200000, 1700), - BusinessConsultant: new CompanyPosition("Business Consultant", 6, 0, 0, 0, 0, 51, 0, 28), - SeniorBusinessConsultant: new CompanyPosition("Senior Business Consultant", 51, 0, 0, 0, 0, 226, 0, 175), + BusinessConsultant: new CompanyPosition("Business Consultant", 6, 0, 0, 0, 0, 51, 0, 32), + SeniorBusinessConsultant: new CompanyPosition("Senior Business Consultant", 51, 0, 0, 0, 0, 226, 0, 190), //Non-tech/management jobs - PartTimeWaiter: new CompanyPosition("Part-time Waiter", 0, 0, 0, 0, 0, 0, 0, 9), - PartTimeEmployee: new CompanyPosition("Part-time Employee", 0, 0, 0, 0, 0, 0, 0, 9), + PartTimeWaiter: new CompanyPosition("Part-time Waiter", 0, 0, 0, 0, 0, 0, 0, 10), + PartTimeEmployee: new CompanyPosition("Part-time Employee", 0, 0, 0, 0, 0, 0, 0, 10), - Waiter: new CompanyPosition("Waiter", 0, 0, 0, 0, 0, 0, 0, 11), - Employee: new CompanyPosition("Employee", 0, 0, 0, 0, 0, 0, 0, 11), - PoliceOfficer: new CompanyPosition("Police Officer", 11, 101, 101, 101, 101, 51, 8000, 36), - PoliceChief: new CompanyPosition("Police Chief", 101, 301, 301, 301, 301, 151, 36000, 175), - SecurityGuard: new CompanyPosition("Security Guard", 0, 51, 51, 51, 51, 1, 0, 20), - SecurityOfficer: new CompanyPosition("Security Officer", 26, 151, 151, 151, 151, 51, 8000, 75), - SecuritySupervisor: new CompanyPosition("Security Supervisor", 26, 251, 251, 251, 251, 101, 36000, 275), - HeadOfSecurity: new CompanyPosition("Head of Security", 51, 501, 501, 501, 501, 151, 144000, 550), - FieldAgent: new CompanyPosition("Field Agent", 101, 101, 101, 101, 101, 101, 8000, 55), - SecretAgent: new CompanyPosition("Secret Agent", 201, 251, 251, 251, 251, 201, 32000, 190), - SpecialOperative: new CompanyPosition("Special Operative", 251, 501, 501, 501, 501, 251, 162000, 425), + Waiter: new CompanyPosition("Waiter", 0, 0, 0, 0, 0, 0, 0, 12), + Employee: new CompanyPosition("Employee", 0, 0, 0, 0, 0, 0, 0, 12), + PoliceOfficer: new CompanyPosition("Police Officer", 11, 101, 101, 101, 101, 51, 8000, 40), + PoliceChief: new CompanyPosition("Police Chief", 101, 301, 301, 301, 301, 151, 36000, 200), + SecurityGuard: new CompanyPosition("Security Guard", 0, 51, 51, 51, 51, 1, 0, 22), + SecurityOfficer: new CompanyPosition("Security Officer", 26, 151, 151, 151, 151, 51, 8000, 85), + SecuritySupervisor: new CompanyPosition("Security Supervisor", 26, 251, 251, 251, 251, 101, 36000, 300), + HeadOfSecurity: new CompanyPosition("Head of Security", 51, 501, 501, 501, 501, 151, 144000, 600), + FieldAgent: new CompanyPosition("Field Agent", 101, 101, 101, 101, 101, 101, 8000, 60), + SecretAgent: new CompanyPosition("Secret Agent", 201, 251, 251, 251, 251, 201, 32000, 225), + SpecialOperative: new CompanyPosition("Special Operative", 251, 501, 501, 501, 501, 251, 162000, 475), init: function() { //Argument order: hack, str, def, dex, agi, cha diff --git a/src/Constants.js b/src/Constants.js index 05eb6a334..54a613047 100644 --- a/src/Constants.js +++ b/src/Constants.js @@ -18,7 +18,7 @@ CONSTANTS = { BaseCostForHacknetNodeCore: 500000, /* Hacknet Node constants */ - HacknetNodeMoneyGainPerLevel: 1.55, + HacknetNodeMoneyGainPerLevel: 1.6, HacknetNodePurchaseNextMult: 1.85, //Multiplier when purchasing an additional hacknet node HacknetNodeUpgradeLevelMult: 1.05, //Multiplier for cost when upgrading level HacknetNodeUpgradeRamMult: 1.29, //Multiplier for cost when upgrading RAM @@ -682,7 +682,7 @@ CONSTANTS = { "-Added support for large numbers using Decimal.js. Right now it only applies for the player's money
" + "-Purchasing servers with the Netscript function purchaseServer() is no longer 2x as expensive as doing manually, " + "it now costs the same
" + - "-Early game servers have more starting money
" + + "-Early game servers have more starting money
" + "v0.26.2
" + "-Major rebalancing and randomization of the amount of money that servers start with
" + "-Significantly lowered hacking exp gain from hacking servers. The exp gain for higher-level servers was lowered more than " + diff --git a/src/Crimes.js b/src/Crimes.js index 9a96a5944..469a30148 100644 --- a/src/Crimes.js +++ b/src/Crimes.js @@ -1,42 +1,42 @@ /* Crimes.js */ function commitShopliftCrime() { Player.crimeType = CONSTANTS.CrimeShoplift; - Player.startCrime(0, 0.75, 0.75, 0.75, 0.75, 0, 5000, 2000); //$2500/s, .375 exp/s -} + Player.startCrime(0, 0, 0, 1.5, 1.5, 0, 10000, 2000); //$5000/s, .375 exp/s +} function commitMugCrime() { Player.crimeType = CONSTANTS.CrimeMug; - Player.startCrime(0, 1.5, 1.5, 1.5, 1.5, 0, 15000, 4000); //$3750/s, .375 exp/s -} + Player.startCrime(0, 1.5, 1.5, 1.5, 1.5, 0, 32000, 4000); //$8000/s, .375 exp/s +} function commitDealDrugsCrime() { Player.crimeType = CONSTANTS.CrimeDrugs; - Player.startCrime(0, 4, 4, 4, 4, 4, 50000, 10000); //$5000/s, .4 exp/s + Player.startCrime(0, 0, 0, 4, 4, 8, 100000, 10000); //$10000/s, .4 exp/s } function commitTraffickArmsCrime() { Player.crimeType = CONSTANTS.CrimeTraffickArms; - Player.startCrime(0, 10, 10, 10, 10, 15, 300000, 40000); //$7500/s, .25 combat exp/s, .375 cha exp/s + Player.startCrime(0, 10, 10, 10, 10, 15, 480000, 40000); //$12000/s, .25 combat exp/s, .375 cha exp/s } function commitHomicideCrime() { Player.crimeType = CONSTANTS.CrimeHomicide; - Player.startCrime(0, 2, 2, 2, 2, 0, 15000, 3000); //$5000/s, 0.66 combat exp/s + Player.startCrime(0, 2, 2, 2, 2, 0, 30000, 3000); //$10000/s, 0.66 combat exp/s } function commitGrandTheftAutoCrime() { Player.crimeType = CONSTANTS.CrimeGrandTheftAuto; - Player.startCrime(0, 10, 10, 10, 40, 20, 750000, 80000); //$9375/s, .125 exp/s, .5 exp/s, .25 exp/s + Player.startCrime(0, 10, 10, 10, 40, 20, 1200000, 80000); //$15000/s, .125 exp/s, .5 exp/s, .25 exp/s } function commitKidnapCrime() { Player.crimeType = CONSTANTS.CrimeKidnap; - Player.startCrime(0, 30, 30, 30, 30, 30, 1500000, 120000); //$12500/s. .25 exp/s + Player.startCrime(0, 30, 30, 30, 30, 30, 2400000, 120000); //$20000/s. .25 exp/s } function commitAssassinationCrime() { Player.crimeType = CONSTANTS.CrimeAssassination; - Player.startCrime(0, 75, 75, 75, 75, 0, 5000000, 300000); //$16666.66/s, .25 exp/s + Player.startCrime(0, 75, 75, 75, 75, 0, 7500000, 300000); //$25000/s, .25 exp/s } function commitHeistCrime() { @@ -48,7 +48,7 @@ function determineCrimeSuccess(crime, moneyGained) { var chance = 0; switch (crime) { case CONSTANTS.CrimeShoplift: - chance = determineCrimeChanceShoplift(); + chance = determineCrimeChanceShoplift(); break; case CONSTANTS.CrimeMug: chance = determineCrimeChanceMug(); @@ -78,7 +78,7 @@ function determineCrimeSuccess(crime, moneyGained) { dialogBoxCreate("ERR: Unrecognized crime type. This is probably a bug please contact the developer"); return; } - + if (Math.random() <= chance) { //Success Player.gainMoney(moneyGained); @@ -92,13 +92,13 @@ function determineCrimeSuccess(crime, moneyGained) { function determineCrimeChanceShoplift() { var chance = ((Player.dexterity / CONSTANTS.MaxSkillLevel + Player.agility / CONSTANTS.MaxSkillLevel)) * 20; - chance *= Player.crime_success_mult; + chance *= Player.crime_success_mult; return Math.min(chance, 1); } function determineCrimeChanceMug() { - var chance = ((1.5 *Player.strength / CONSTANTS.MaxSkillLevel + - 0.5 * Player.defense / CONSTANTS.MaxSkillLevel + + var chance = ((1.5 *Player.strength / CONSTANTS.MaxSkillLevel + + 0.5 * Player.defense / CONSTANTS.MaxSkillLevel + 1.5 * Player.dexterity / CONSTANTS.MaxSkillLevel + 0.5 * Player.agility / CONSTANTS.MaxSkillLevel)) * 5; chance *= Player.crime_success_mult; @@ -115,8 +115,8 @@ function determineCrimeChanceDealDrugs() { function determineCrimeChanceTraffickArms() { var chance = ((Player.charisma / CONSTANTS.MaxSkillLevel + - Player.strength / CONSTANTS.MaxSkillLevel + - Player.defense / CONSTANTS.MaxSkillLevel + + Player.strength / CONSTANTS.MaxSkillLevel + + Player.defense / CONSTANTS.MaxSkillLevel + Player.dexterity / CONSTANTS.MaxSkillLevel + Player.agility / CONSTANTS.MaxSkillLevel)) / 2; chance *= Player.crime_success_mult; @@ -124,8 +124,8 @@ function determineCrimeChanceTraffickArms() { } function determineCrimeChanceHomicide() { - var chance = ((2 * Player.strength / CONSTANTS.MaxSkillLevel + - 2 * Player.defense / CONSTANTS.MaxSkillLevel + + var chance = ((2 * Player.strength / CONSTANTS.MaxSkillLevel + + 2 * Player.defense / CONSTANTS.MaxSkillLevel + 0.5 * Player.dexterity / CONSTANTS.MaxSkillLevel + 0.5 * Player.agility / CONSTANTS.MaxSkillLevel)); chance *= Player.crime_success_mult; @@ -133,10 +133,10 @@ function determineCrimeChanceHomicide() { } function determineCrimeChanceGrandTheftAuto() { - var chance = ((Player.hacking_skill / CONSTANTS.MaxSkillLevel + - Player.strength / CONSTANTS.MaxSkillLevel + + var chance = ((Player.hacking_skill / CONSTANTS.MaxSkillLevel + + Player.strength / CONSTANTS.MaxSkillLevel + 4 * Player.dexterity / CONSTANTS.MaxSkillLevel + - 2 * Player.agility / CONSTANTS.MaxSkillLevel + + 2 * Player.agility / CONSTANTS.MaxSkillLevel + 2 * Player.charisma / CONSTANTS.MaxSkillLevel)) / 8; chance *= Player.crime_success_mult; return Math.min(chance, 1); @@ -144,7 +144,7 @@ function determineCrimeChanceGrandTheftAuto() { function determineCrimeChanceKidnap() { var chance = ((Player.charisma / CONSTANTS.MaxSkillLevel + - Player.strength / CONSTANTS.MaxSkillLevel + + Player.strength / CONSTANTS.MaxSkillLevel + Player.dexterity / CONSTANTS.MaxSkillLevel + Player.agility / CONSTANTS.MaxSkillLevel)) / 5; chance *= Player.crime_success_mult; @@ -152,19 +152,19 @@ function determineCrimeChanceKidnap() { } function determineCrimeChanceAssassination() { - var chance = ((Player.strength / CONSTANTS.MaxSkillLevel + + var chance = ((Player.strength / CONSTANTS.MaxSkillLevel + 2 * Player.dexterity / CONSTANTS.MaxSkillLevel + Player.agility / CONSTANTS.MaxSkillLevel)) / 8; chance *= Player.crime_success_mult; - return Math.min(chance, 1); + return Math.min(chance, 1); } function determineCrimeChanceHeist() { - var chance = ((Player.hacking_skill / CONSTANTS.MaxSkillLevel + - Player.strength / CONSTANTS.MaxSkillLevel + - Player.defense / CONSTANTS.MaxSkillLevel + + var chance = ((Player.hacking_skill / CONSTANTS.MaxSkillLevel + + Player.strength / CONSTANTS.MaxSkillLevel + + Player.defense / CONSTANTS.MaxSkillLevel + Player.dexterity / CONSTANTS.MaxSkillLevel + - Player.agility / CONSTANTS.MaxSkillLevel + + Player.agility / CONSTANTS.MaxSkillLevel + Player.charisma / CONSTANTS.MaxSkillLevel)) / 18; chance *= Player.crime_success_mult; return Math.min(chance, 1); diff --git a/src/NetscriptWorker.js b/src/NetscriptWorker.js index 3877efeb1..f90703b0d 100644 --- a/src/NetscriptWorker.js +++ b/src/NetscriptWorker.js @@ -46,7 +46,7 @@ function runScriptsLoop() { if (workerScripts[i].running == false && workerScripts[i].env.stopFlag == false) { try { var ast = acorn.parse(workerScripts[i].code); - console.log(ast); + //console.log(ast); } catch (e) { console.log("Error parsing script: " + workerScripts[i].name); dialogBoxCreate("Syntax ERROR in " + workerScripts[i].name + ":
" + e); diff --git a/src/Server.js b/src/Server.js index 74389394f..f3598ad12 100644 --- a/src/Server.js +++ b/src/Server.js @@ -434,7 +434,7 @@ initForeignServers = function() { var JoesGunsServer = new Server(); JoesGunsServer.init(createRandomIp(), "joesguns", "Joe's Guns", true, false, false, false, 4); - JoesGunsServer.setHackingParameters(10, 2500000, 20, 20); + JoesGunsServer.setHackingParameters(10, 2500000, 15, 20); JoesGunsServer.setPortProperties(0); AddToAllServers(JoesGunsServer); @@ -464,7 +464,7 @@ initForeignServers = function() { var HongFangTeaHouseServer = new Server(); HongFangTeaHouseServer.init(createRandomIp(), "hong-fang-tea", "HongFang Teahouse", true, false, false, false, 4); - HongFangTeaHouseServer.setHackingParameters(30, 3000000, 15, 15); + HongFangTeaHouseServer.setHackingParameters(30, 3000000, 15, 20); HongFangTeaHouseServer.setPortProperties(0); AddToAllServers(HongFangTeaHouseServer);