diff --git a/dist/bitburner.d.ts b/dist/bitburner.d.ts index 2553d10f0..ec8f84056 100644 --- a/dist/bitburner.d.ts +++ b/dist/bitburner.d.ts @@ -4671,8 +4671,10 @@ export declare interface Office { maxMor: number; /** Name of all the employees */ employees: string[]; - /** Positions of the employees */ + /** Production of the employees */ employeeProd: EmployeeJobs; + /** Positions of the employees */ + employeeJobs: EmployeeJobs; } /** diff --git a/src/Corporation/OfficeSpace.ts b/src/Corporation/OfficeSpace.ts index 02b86075b..b7140ef59 100644 --- a/src/Corporation/OfficeSpace.ts +++ b/src/Corporation/OfficeSpace.ts @@ -29,6 +29,16 @@ export class OfficeSpace { [EmployeePositions.RandD]: 0, total: 0, }; + employeeJobs: { [key: string]: number } = { + [EmployeePositions.Operations]: 0, + [EmployeePositions.Engineer]: 0, + [EmployeePositions.Business]: 0, + [EmployeePositions.Management]: 0, + [EmployeePositions.RandD]: 0, + [EmployeePositions.Training]: 0, + [EmployeePositions.Unassigned]: 0, + total: 0, + }; constructor(params: IParams = {}) { this.loc = params.loc ? params.loc : ""; @@ -48,6 +58,8 @@ export class OfficeSpace { } } + this.calculateTotalEmployees(corporation, industry); + // Process Office properties this.maxEne = 100; this.maxHap = 100; @@ -101,6 +113,19 @@ export class OfficeSpace { return salaryPaid; } + calculateTotalEmployees(corporation: ICorporation, industry: IIndustry): void { + //Reset + for (const name of Object.keys(this.employeeJobs)) { + this.employeeJobs[name] = 0; + } + + for (let i = 0; i < this.employees.length; ++i) { + const employee = this.employees[i]; + this.employeeJobs[employee.pos]++; + } + this.employeeJobs.total = this.employees.length; + } + calculateEmployeeProductivity(corporation: ICorporation, industry: IIndustry): void { //Reset for (const name of Object.keys(this.employeeProd)) { diff --git a/src/NetscriptFunctions/Corporation.ts b/src/NetscriptFunctions/Corporation.ts index 95b82c99f..db93a8139 100644 --- a/src/NetscriptFunctions/Corporation.ts +++ b/src/NetscriptFunctions/Corporation.ts @@ -753,6 +753,15 @@ export function NetscriptCorporation( "Research & Development": office.employeeProd[EmployeePositions.RandD], Training: office.employeeProd[EmployeePositions.Training], }, + employeeJobs: { + Operations: office.employeeJobs[EmployeePositions.Operations], + Engineer: office.employeeJobs[EmployeePositions.Engineer], + Business: office.employeeJobs[EmployeePositions.Business], + Management: office.employeeJobs[EmployeePositions.Management], + "Research & Development": office.employeeJobs[EmployeePositions.RandD], + Training: office.employeeJobs[EmployeePositions.Training], + Unassigned: office.employeeJobs[EmployeePositions.Unassigned], + }, }; }, getEmployee: function (_divisionName: unknown, _cityName: unknown, _employeeName: unknown): NSEmployee { diff --git a/src/ScriptEditor/NetscriptDefinitions.d.ts b/src/ScriptEditor/NetscriptDefinitions.d.ts index 4c49b15e1..18da4e065 100644 --- a/src/ScriptEditor/NetscriptDefinitions.d.ts +++ b/src/ScriptEditor/NetscriptDefinitions.d.ts @@ -6965,8 +6965,10 @@ interface Office { maxMor: number; /** Name of all the employees */ employees: string[]; - /** Positions of the employees */ + /** Production of the employees */ employeeProd: EmployeeJobs; + /** Positions of the employees */ + employeeJobs: EmployeeJobs; } /**