aboutsummaryrefslogtreecommitdiff
path: root/engine/career/career.ts
blob: e8a5af27a157fdef4c4d3c537bbf7099eb3ab837 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import type { GameTime } from '@hollowdark/time/gameTime'
import type { InstitutionId } from '@hollowdark/engine/entities/base'

export type CareerTrajectory = 'rising' | 'steady' | 'declining' | 'stalled'

export interface CareerPerformance {
  readonly quality: number
  readonly reputationAtEmployer: number
  readonly yearsSinceLastRecognition: number
}

export interface CareerHistoryEntry {
  readonly careerId: string
  readonly employerId: InstitutionId | null
  readonly role: string
  readonly startedAt: GameTime
  readonly endedAt: GameTime | null
  readonly reasonEnded: string | null
  readonly notableEvents: readonly string[]
}

export interface CareerState {
  readonly currentCareerId: string | null
  readonly currentRole: string
  readonly currentEmployerId: InstitutionId | null
  readonly yearsInCurrentRole: number
  readonly yearsInCurrentCareer: number
  readonly careerHistory: readonly CareerHistoryEntry[]
  readonly performance: CareerPerformance
  readonly trajectory: CareerTrajectory
  readonly jobSatisfaction: number
}