mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2026-04-17 06:48:42 +02:00
592 lines
17 KiB
TypeScript
592 lines
17 KiB
TypeScript
// Metadata used for constructing Company Positions
|
|
import { JobName, JobField } from "@enums";
|
|
import { CompanyPositionCtorParams } from "../CompanyPosition";
|
|
|
|
export function getCompanyPositionMetadata(): Record<JobName, CompanyPositionCtorParams> {
|
|
return {
|
|
[JobName.software0]: {
|
|
nextPosition: JobName.software1, // Junior Software Engineer
|
|
field: JobField.software,
|
|
isStartingJob: true,
|
|
baseSalary: 33,
|
|
charismaEffectiveness: 15,
|
|
charismaExpGain: 0.02,
|
|
hackingEffectiveness: 85,
|
|
hackingExpGain: 0.05,
|
|
reqdHacking: 1,
|
|
repMultiplier: 0.9,
|
|
},
|
|
[JobName.software1]: {
|
|
nextPosition: JobName.software2, // Senior Software Engineer
|
|
field: JobField.software,
|
|
baseSalary: 80,
|
|
charismaEffectiveness: 15,
|
|
charismaExpGain: 0.05,
|
|
hackingEffectiveness: 85,
|
|
hackingExpGain: 0.1,
|
|
reqdHacking: 51,
|
|
reqdReputation: 8e3,
|
|
repMultiplier: 1.1,
|
|
},
|
|
[JobName.software2]: {
|
|
nextPosition: JobName.software3, // Lead Software Developer
|
|
field: JobField.software,
|
|
baseSalary: 165,
|
|
charismaEffectiveness: 20,
|
|
charismaExpGain: 0.08,
|
|
hackingEffectiveness: 80,
|
|
hackingExpGain: 0.4,
|
|
reqdCharisma: 51,
|
|
reqdHacking: 251,
|
|
reqdReputation: 40e3,
|
|
repMultiplier: 1.3,
|
|
},
|
|
[JobName.software3]: {
|
|
nextPosition: JobName.software4, // Head of Software
|
|
field: JobField.software,
|
|
baseSalary: 500,
|
|
charismaEffectiveness: 25,
|
|
charismaExpGain: 0.1,
|
|
hackingEffectiveness: 75,
|
|
hackingExpGain: 0.8,
|
|
reqdCharisma: 151,
|
|
reqdHacking: 401,
|
|
reqdReputation: 200e3,
|
|
repMultiplier: 1.5,
|
|
},
|
|
[JobName.software4]: {
|
|
nextPosition: JobName.software5, // Head of Engineering
|
|
field: JobField.software,
|
|
baseSalary: 800,
|
|
charismaEffectiveness: 25,
|
|
charismaExpGain: 0.5,
|
|
hackingEffectiveness: 75,
|
|
hackingExpGain: 1,
|
|
reqdCharisma: 251,
|
|
reqdHacking: 501,
|
|
reqdReputation: 400e3,
|
|
repMultiplier: 1.6,
|
|
hiredText: `Congratulations, you are now ${JobName.software4}`,
|
|
},
|
|
[JobName.software5]: {
|
|
nextPosition: JobName.software6, // Vice President of Technology
|
|
field: JobField.software,
|
|
baseSalary: 1650,
|
|
charismaEffectiveness: 25,
|
|
charismaExpGain: 0.5,
|
|
hackingEffectiveness: 75,
|
|
hackingExpGain: 1.1,
|
|
reqdCharisma: 251,
|
|
reqdHacking: 501,
|
|
reqdReputation: 800e3,
|
|
repMultiplier: 1.6,
|
|
hiredText: `Congratulations, you are now ${JobName.software5}`,
|
|
},
|
|
[JobName.software6]: {
|
|
nextPosition: JobName.software7, // Chief Technology Officer
|
|
field: JobField.software,
|
|
baseSalary: 2310,
|
|
charismaEffectiveness: 30,
|
|
charismaExpGain: 0.6,
|
|
hackingEffectiveness: 70,
|
|
hackingExpGain: 1.2,
|
|
reqdCharisma: 401,
|
|
reqdHacking: 601,
|
|
reqdReputation: 1.6e6,
|
|
repMultiplier: 1.75,
|
|
hiredText: `Congratulations, you are now ${JobName.software6}`,
|
|
},
|
|
[JobName.software7]: {
|
|
nextPosition: null,
|
|
field: JobField.software,
|
|
baseSalary: 2640,
|
|
charismaEffectiveness: 35,
|
|
charismaExpGain: 1,
|
|
hackingEffectiveness: 65,
|
|
hackingExpGain: 1.5,
|
|
reqdCharisma: 501,
|
|
reqdHacking: 751,
|
|
reqdReputation: 3.2e6,
|
|
repMultiplier: 2,
|
|
hiredText: `Congratulations, you are now ${JobName.software7}`,
|
|
},
|
|
[JobName.IT0]: {
|
|
nextPosition: JobName.IT1, // IT Analyst
|
|
field: JobField.it,
|
|
isStartingJob: true,
|
|
baseSalary: 26,
|
|
charismaEffectiveness: 10,
|
|
charismaExpGain: 0.01,
|
|
hackingEffectiveness: 90,
|
|
hackingExpGain: 0.04,
|
|
reqdHacking: 1,
|
|
repMultiplier: 0.9,
|
|
},
|
|
[JobName.IT1]: {
|
|
nextPosition: JobName.IT2, // IT Manager
|
|
field: JobField.it,
|
|
baseSalary: 66,
|
|
charismaEffectiveness: 15,
|
|
charismaExpGain: 0.02,
|
|
hackingEffectiveness: 85,
|
|
hackingExpGain: 0.08,
|
|
reqdHacking: 26,
|
|
reqdReputation: 7e3,
|
|
repMultiplier: 1.1,
|
|
},
|
|
[JobName.IT2]: {
|
|
nextPosition: JobName.IT3, // Systems Administrator
|
|
field: JobField.it,
|
|
baseSalary: 132,
|
|
charismaEffectiveness: 20,
|
|
charismaExpGain: 0.1,
|
|
hackingEffectiveness: 80,
|
|
hackingExpGain: 0.3,
|
|
reqdCharisma: 51,
|
|
reqdHacking: 151,
|
|
reqdReputation: 35e3,
|
|
repMultiplier: 1.3,
|
|
},
|
|
[JobName.IT3]: {
|
|
nextPosition: JobName.software5, // Head of Engineering
|
|
field: JobField.it,
|
|
baseSalary: 410,
|
|
charismaEffectiveness: 20,
|
|
charismaExpGain: 0.2,
|
|
hackingEffectiveness: 80,
|
|
hackingExpGain: 0.5,
|
|
reqdCharisma: 76,
|
|
reqdHacking: 251,
|
|
reqdReputation: 175e3,
|
|
repMultiplier: 1.4,
|
|
},
|
|
[JobName.securityEng]: {
|
|
nextPosition: JobName.software5, // Head of Engineering
|
|
field: JobField.securityEngineer,
|
|
isStartingJob: true,
|
|
baseSalary: 121,
|
|
charismaEffectiveness: 15,
|
|
charismaExpGain: 0.05,
|
|
hackingEffectiveness: 85,
|
|
hackingExpGain: 0.4,
|
|
reqdCharisma: 26,
|
|
reqdHacking: 151,
|
|
reqdReputation: 35e3,
|
|
repMultiplier: 1.2,
|
|
},
|
|
[JobName.networkEng0]: {
|
|
nextPosition: JobName.networkEng1, // Network Administrator
|
|
field: JobField.networkEngineer,
|
|
isStartingJob: true,
|
|
baseSalary: 121,
|
|
charismaEffectiveness: 15,
|
|
charismaExpGain: 0.05,
|
|
hackingEffectiveness: 85,
|
|
hackingExpGain: 0.4,
|
|
reqdCharisma: 26,
|
|
reqdHacking: 151,
|
|
reqdReputation: 35e3,
|
|
repMultiplier: 1.2,
|
|
},
|
|
[JobName.networkEng1]: {
|
|
nextPosition: JobName.software5, // Head of Engineering
|
|
field: JobField.networkEngineer,
|
|
baseSalary: 410,
|
|
charismaEffectiveness: 20,
|
|
charismaExpGain: 0.1,
|
|
hackingEffectiveness: 80,
|
|
hackingExpGain: 0.5,
|
|
reqdCharisma: 76,
|
|
reqdHacking: 251,
|
|
reqdReputation: 175e3,
|
|
repMultiplier: 1.3,
|
|
},
|
|
[JobName.business0]: {
|
|
nextPosition: JobName.business1, // Business Analyst
|
|
field: JobField.business,
|
|
isStartingJob: true,
|
|
baseSalary: 46,
|
|
charismaEffectiveness: 90,
|
|
charismaExpGain: 0.08,
|
|
hackingEffectiveness: 10,
|
|
hackingExpGain: 0.01,
|
|
reqdCharisma: 1,
|
|
reqdHacking: 1,
|
|
repMultiplier: 0.9,
|
|
},
|
|
[JobName.business1]: {
|
|
nextPosition: JobName.business2, // Business Manager
|
|
field: JobField.business,
|
|
baseSalary: 100,
|
|
charismaEffectiveness: 85,
|
|
charismaExpGain: 0.15,
|
|
hackingEffectiveness: 15,
|
|
hackingExpGain: 0.02,
|
|
reqdCharisma: 51,
|
|
reqdHacking: 6,
|
|
reqdReputation: 8e3,
|
|
repMultiplier: 1.1,
|
|
},
|
|
[JobName.business2]: {
|
|
nextPosition: JobName.business3, // Operations Manager
|
|
field: JobField.business,
|
|
baseSalary: 200,
|
|
charismaEffectiveness: 85,
|
|
charismaExpGain: 0.3,
|
|
hackingEffectiveness: 15,
|
|
hackingExpGain: 0.02,
|
|
reqdCharisma: 101,
|
|
reqdHacking: 51,
|
|
reqdReputation: 40e3,
|
|
repMultiplier: 1.3,
|
|
},
|
|
[JobName.business3]: {
|
|
nextPosition: JobName.business4, // Chief Financial Officer
|
|
field: JobField.business,
|
|
baseSalary: 660,
|
|
charismaEffectiveness: 85,
|
|
charismaExpGain: 0.4,
|
|
hackingEffectiveness: 15,
|
|
hackingExpGain: 0.02,
|
|
reqdCharisma: 226,
|
|
reqdHacking: 51,
|
|
reqdReputation: 200e3,
|
|
repMultiplier: 1.5,
|
|
},
|
|
[JobName.business4]: {
|
|
nextPosition: JobName.business5, // Chief Executive Officer
|
|
field: JobField.business,
|
|
baseSalary: 1950,
|
|
charismaEffectiveness: 90,
|
|
charismaExpGain: 1,
|
|
hackingEffectiveness: 10,
|
|
hackingExpGain: 0.05,
|
|
reqdCharisma: 501,
|
|
reqdHacking: 76,
|
|
reqdReputation: 800e3,
|
|
repMultiplier: 1.6,
|
|
hiredText: `Congratulations, you are now ${JobName.business4}`,
|
|
},
|
|
[JobName.business5]: {
|
|
nextPosition: null,
|
|
field: JobField.business,
|
|
baseSalary: 3900,
|
|
charismaEffectiveness: 90,
|
|
charismaExpGain: 1.5,
|
|
hackingEffectiveness: 10,
|
|
hackingExpGain: 0.05,
|
|
reqdCharisma: 751,
|
|
reqdHacking: 101,
|
|
reqdReputation: 3.2e6,
|
|
repMultiplier: 1.75,
|
|
hiredText: `Congratulations, you are now ${JobName.business5}`,
|
|
},
|
|
[JobName.security0]: {
|
|
nextPosition: JobName.security1, // Security Officer
|
|
field: JobField.security,
|
|
isStartingJob: true,
|
|
baseSalary: 50,
|
|
hackingEffectiveness: 5,
|
|
strengthEffectiveness: 20,
|
|
defenseEffectiveness: 20,
|
|
dexterityEffectiveness: 20,
|
|
agilityEffectiveness: 20,
|
|
charismaEffectiveness: 15,
|
|
hackingExpGain: 0.01,
|
|
strengthExpGain: 0.04,
|
|
defenseExpGain: 0.04,
|
|
dexterityExpGain: 0.04,
|
|
agilityExpGain: 0.04,
|
|
charismaExpGain: 0.02,
|
|
reqdStrength: 51,
|
|
reqdDefense: 51,
|
|
reqdDexterity: 51,
|
|
reqdAgility: 51,
|
|
reqdCharisma: 1,
|
|
repMultiplier: 1,
|
|
},
|
|
[JobName.security1]: {
|
|
nextPosition: JobName.security2, // Security Supervisor
|
|
field: JobField.security,
|
|
baseSalary: 195,
|
|
hackingEffectiveness: 10,
|
|
strengthEffectiveness: 20,
|
|
defenseEffectiveness: 20,
|
|
dexterityEffectiveness: 20,
|
|
agilityEffectiveness: 20,
|
|
charismaEffectiveness: 10,
|
|
hackingExpGain: 0.02,
|
|
strengthExpGain: 0.1,
|
|
defenseExpGain: 0.1,
|
|
dexterityExpGain: 0.1,
|
|
agilityExpGain: 0.1,
|
|
charismaExpGain: 0.05,
|
|
reqdHacking: 26,
|
|
reqdStrength: 151,
|
|
reqdDefense: 151,
|
|
reqdDexterity: 151,
|
|
reqdAgility: 151,
|
|
reqdCharisma: 51,
|
|
reqdReputation: 8e3,
|
|
repMultiplier: 1.1,
|
|
},
|
|
[JobName.security2]: {
|
|
nextPosition: JobName.security3, // Head of Security
|
|
field: JobField.security,
|
|
baseSalary: 660,
|
|
hackingEffectiveness: 10,
|
|
strengthEffectiveness: 15,
|
|
defenseEffectiveness: 15,
|
|
dexterityEffectiveness: 15,
|
|
agilityEffectiveness: 15,
|
|
charismaEffectiveness: 30,
|
|
hackingExpGain: 0.02,
|
|
strengthExpGain: 0.12,
|
|
defenseExpGain: 0.12,
|
|
dexterityExpGain: 0.12,
|
|
agilityExpGain: 0.12,
|
|
charismaExpGain: 0.1,
|
|
reqdHacking: 26,
|
|
reqdStrength: 251,
|
|
reqdDefense: 251,
|
|
reqdDexterity: 251,
|
|
reqdAgility: 251,
|
|
reqdCharisma: 101,
|
|
reqdReputation: 36e3,
|
|
repMultiplier: 1.25,
|
|
},
|
|
[JobName.security3]: {
|
|
nextPosition: null,
|
|
field: JobField.security,
|
|
baseSalary: 1320,
|
|
hackingEffectiveness: 10,
|
|
strengthEffectiveness: 15,
|
|
defenseEffectiveness: 15,
|
|
dexterityEffectiveness: 15,
|
|
agilityEffectiveness: 15,
|
|
charismaEffectiveness: 30,
|
|
hackingExpGain: 0.05,
|
|
strengthExpGain: 0.15,
|
|
defenseExpGain: 0.15,
|
|
dexterityExpGain: 0.15,
|
|
agilityExpGain: 0.15,
|
|
charismaExpGain: 0.15,
|
|
reqdHacking: 51,
|
|
reqdStrength: 501,
|
|
reqdDefense: 501,
|
|
reqdDexterity: 501,
|
|
reqdAgility: 501,
|
|
reqdCharisma: 151,
|
|
reqdReputation: 144e3,
|
|
repMultiplier: 1.4,
|
|
},
|
|
[JobName.agent0]: {
|
|
nextPosition: JobName.agent1, // Secret Agent
|
|
field: JobField.agent,
|
|
isStartingJob: true,
|
|
baseSalary: 330,
|
|
hackingEffectiveness: 10,
|
|
strengthEffectiveness: 15,
|
|
defenseEffectiveness: 15,
|
|
dexterityEffectiveness: 20,
|
|
agilityEffectiveness: 20,
|
|
charismaEffectiveness: 20,
|
|
hackingExpGain: 0.04,
|
|
strengthExpGain: 0.08,
|
|
defenseExpGain: 0.08,
|
|
dexterityExpGain: 0.08,
|
|
agilityExpGain: 0.08,
|
|
charismaExpGain: 0.05,
|
|
reqdHacking: 101,
|
|
reqdStrength: 101,
|
|
reqdDefense: 101,
|
|
reqdDexterity: 101,
|
|
reqdAgility: 101,
|
|
reqdCharisma: 101,
|
|
reqdReputation: 8e3,
|
|
repMultiplier: 1,
|
|
},
|
|
[JobName.agent1]: {
|
|
nextPosition: JobName.agent2, // Special Operative
|
|
field: JobField.agent,
|
|
baseSalary: 990,
|
|
hackingEffectiveness: 15,
|
|
strengthEffectiveness: 15,
|
|
defenseEffectiveness: 15,
|
|
dexterityEffectiveness: 20,
|
|
agilityEffectiveness: 20,
|
|
charismaEffectiveness: 15,
|
|
hackingExpGain: 0.1,
|
|
strengthExpGain: 0.15,
|
|
defenseExpGain: 0.15,
|
|
dexterityExpGain: 0.15,
|
|
agilityExpGain: 0.15,
|
|
charismaExpGain: 0.1,
|
|
reqdHacking: 201,
|
|
reqdStrength: 251,
|
|
reqdDefense: 251,
|
|
reqdDexterity: 251,
|
|
reqdAgility: 251,
|
|
reqdCharisma: 201,
|
|
reqdReputation: 32e3,
|
|
repMultiplier: 1.25,
|
|
},
|
|
[JobName.agent2]: {
|
|
nextPosition: null,
|
|
field: JobField.agent,
|
|
baseSalary: 2000,
|
|
hackingEffectiveness: 15,
|
|
strengthEffectiveness: 15,
|
|
defenseEffectiveness: 15,
|
|
dexterityEffectiveness: 20,
|
|
agilityEffectiveness: 20,
|
|
charismaEffectiveness: 15,
|
|
hackingExpGain: 0.15,
|
|
strengthExpGain: 0.2,
|
|
defenseExpGain: 0.2,
|
|
dexterityExpGain: 0.2,
|
|
agilityExpGain: 0.2,
|
|
charismaExpGain: 0.15,
|
|
reqdHacking: 251,
|
|
reqdStrength: 501,
|
|
reqdDefense: 501,
|
|
reqdDexterity: 501,
|
|
reqdAgility: 501,
|
|
reqdCharisma: 251,
|
|
reqdReputation: 162e3,
|
|
repMultiplier: 1.5,
|
|
},
|
|
[JobName.waiter]: {
|
|
nextPosition: null,
|
|
field: JobField.waiter,
|
|
isStartingJob: true,
|
|
baseSalary: 22,
|
|
strengthEffectiveness: 10,
|
|
dexterityEffectiveness: 10,
|
|
agilityEffectiveness: 10,
|
|
charismaEffectiveness: 70,
|
|
strengthExpGain: 0.02,
|
|
defenseExpGain: 0.02,
|
|
dexterityExpGain: 0.02,
|
|
agilityExpGain: 0.02,
|
|
charismaExpGain: 0.05,
|
|
repMultiplier: 1,
|
|
applyText: `Apply to be a ${JobName.waiter}`,
|
|
hiredText: `Congratulations, you are now employed as a ${JobName.waiter}`,
|
|
},
|
|
[JobName.employee]: {
|
|
nextPosition: null,
|
|
field: JobField.employee,
|
|
isStartingJob: true,
|
|
baseSalary: 22,
|
|
strengthEffectiveness: 10,
|
|
dexterityEffectiveness: 10,
|
|
agilityEffectiveness: 10,
|
|
charismaEffectiveness: 70,
|
|
strengthExpGain: 0.02,
|
|
defenseExpGain: 0.02,
|
|
dexterityExpGain: 0.02,
|
|
agilityExpGain: 0.02,
|
|
charismaExpGain: 0.04,
|
|
repMultiplier: 1,
|
|
applyText: `Apply to be an ${JobName.employee}`,
|
|
hiredText: "Congratulations, you are now employed",
|
|
},
|
|
[JobName.softwareConsult0]: {
|
|
nextPosition: JobName.softwareConsult1, // Senior Software Consultant
|
|
field: JobField.softwareConsultant,
|
|
isStartingJob: true,
|
|
baseSalary: 66,
|
|
hackingEffectiveness: 80,
|
|
charismaEffectiveness: 20,
|
|
hackingExpGain: 0.08,
|
|
charismaExpGain: 0.03,
|
|
reqdHacking: 51,
|
|
repMultiplier: 1,
|
|
applyText: `Pitch a Software Consulting contract`,
|
|
hiredText: `Congratulations, you got a contract as a ${JobName.softwareConsult0}`,
|
|
},
|
|
[JobName.softwareConsult1]: {
|
|
nextPosition: null,
|
|
field: JobField.softwareConsultant,
|
|
baseSalary: 132,
|
|
hackingEffectiveness: 75,
|
|
charismaEffectiveness: 25,
|
|
hackingExpGain: 0.25,
|
|
charismaExpGain: 0.06,
|
|
reqdHacking: 251,
|
|
reqdCharisma: 51,
|
|
repMultiplier: 1.2,
|
|
applyText: `Pitch a Software Consulting contract`,
|
|
hiredText: `Congratulations, you got a contract as a ${JobName.softwareConsult1}`,
|
|
},
|
|
[JobName.businessConsult0]: {
|
|
nextPosition: JobName.businessConsult1, // Senior Business Consultant
|
|
field: JobField.businessConsultant,
|
|
isStartingJob: true,
|
|
baseSalary: 66,
|
|
hackingEffectiveness: 20,
|
|
charismaEffectiveness: 80,
|
|
hackingExpGain: 0.015,
|
|
charismaExpGain: 0.15,
|
|
reqdHacking: 6,
|
|
reqdCharisma: 51,
|
|
repMultiplier: 1,
|
|
applyText: `Pitch a Business Consulting contract`,
|
|
hiredText: `Congratulations, you got a contract as a ${JobName.businessConsult0}`,
|
|
},
|
|
[JobName.businessConsult1]: {
|
|
nextPosition: null,
|
|
field: JobField.businessConsultant,
|
|
baseSalary: 525,
|
|
hackingEffectiveness: 15,
|
|
charismaEffectiveness: 85,
|
|
hackingExpGain: 0.015,
|
|
charismaExpGain: 0.3,
|
|
reqdHacking: 51,
|
|
reqdCharisma: 226,
|
|
repMultiplier: 1.2,
|
|
applyText: `Pitch a Business Consulting contract`,
|
|
hiredText: `Congratulations, you got a contract as a ${JobName.businessConsult1}`,
|
|
},
|
|
[JobName.waiterPT]: {
|
|
nextPosition: null,
|
|
field: JobField.waiter,
|
|
isStartingJob: true,
|
|
baseSalary: 20,
|
|
strengthEffectiveness: 10,
|
|
dexterityEffectiveness: 10,
|
|
agilityEffectiveness: 10,
|
|
charismaEffectiveness: 70,
|
|
strengthExpGain: 0.0075,
|
|
defenseExpGain: 0.0075,
|
|
dexterityExpGain: 0.0075,
|
|
agilityExpGain: 0.0075,
|
|
charismaExpGain: 0.04,
|
|
repMultiplier: 1,
|
|
isPartTime: true,
|
|
applyText: `Apply to be a ${JobName.waiterPT}`,
|
|
hiredText: `Congratulations, you are now employed as a ${JobName.waiterPT}`,
|
|
},
|
|
[JobName.employeePT]: {
|
|
nextPosition: null,
|
|
field: JobField.employee,
|
|
isStartingJob: true,
|
|
baseSalary: 20,
|
|
strengthEffectiveness: 10,
|
|
dexterityEffectiveness: 10,
|
|
agilityEffectiveness: 10,
|
|
charismaEffectiveness: 70,
|
|
strengthExpGain: 0.0075,
|
|
defenseExpGain: 0.0075,
|
|
dexterityExpGain: 0.0075,
|
|
agilityExpGain: 0.0075,
|
|
charismaExpGain: 0.03,
|
|
repMultiplier: 1,
|
|
isPartTime: true,
|
|
applyText: `Apply to be a ${JobName.employeePT}`,
|
|
hiredText: "Congratulations, you are now employed part-time",
|
|
},
|
|
};
|
|
}
|