# Departmental abstracts
- type: entity
  abstract: true
  parent: BaseTraitorStealObjective
  id: BaseTraitorSecurityStealObjective
  components:
  - type: NotJobRequirement
    jobs: [ SecurityOfficer, HeadOfSecurity, Detective, Warden, Brigmedic, DutyOfficer, SecurityCadet ]

- type: entity
  abstract: true
  parent: BaseTraitorStealObjective
  id: BaseTraitorMedicalStealObjective
  components:
  - type: NotJobRequirement
    jobs: [ MedicalDoctor, Paramedic, ChiefMedicalOfficer, MedicalIntern, Surgeon, Chemist, Psychologist ]

- type: entity
  abstract: true
  parent: BaseTraitorStealObjective
  id: BaseTraitorCargoStealObjective
  components:
  - type: NotJobRequirement
    jobs: [ Quartermaster, CargoTechnician, MailTech, MiningSpecialist, SalvageSpecialist, SalvageLead ]

- type: entity
  abstract: true
  parent: BaseTraitorStealObjective
  id: BaseTraitorScienceStealObjective
  components:
  - type: NotJobRequirement
    jobs: [ ResearchDirector, ResearchAssistant, Scientist, Roboticist ]

- type: entity
  abstract: true
  parent: BaseTraitorStealObjective
  id: BaseTraitorEngineeringStealObjective
  components:
  - type: NotJobRequirement
    jobs: [ ChiefEngineer, StationEngineer, AtmosphericTechnician, TechnicalAssistant ]

- type: entity
  abstract: true
  parent: BaseTraitorStealObjective
  id: BaseTraitorCommandStealObjective
  components:
  - type: NotJobRequirement
    jobs: [ Captain, HeadOfPersonnel, HeadOfSecurity, ResearchDirector, ChiefEngineer, ChiefMedicalOfficer, Quartermaster, NanoTrasenRepresentative, Magistrate, BlueShield ]

- type: entity
  abstract: true
  parent: BaseTraitorStealObjective
  id: BaseTraitorNanoTrasenStealObjective
  components:
  - type: NotJobRequirement
    jobs: [ NanoTrasenRepresentative, Magistrate, BlueShield, IAA, NanotrasenCareerTrainer ]

- type: entity
  abstract: true
  parent: BaseTraitorStealObjective
  id: BaseTraitorLawStealObjective
  components:
  - type: NotJobRequirement
    jobs: [ Magistrate, IAA, Lawyer ]

  # Base Steal NTR / IAA / Magi
- type: entity
  abstract: true
  parent: BaseTraitorStealObjective
  id: BaseNTRStealObjective
  components:
  - type: NotJobRequirement
    jobs: [ NanoTrasenRepresentative ]
  - type: StealCondition
    owner: job-name-ntrep

- type: entity
  abstract: true
  parent: BaseTraitorStealObjective
  id: BaseIAAStealObjective
  components:
  - type: NotJobRequirement
    jobs: [ IAA ]
  - type: StealCondition
    owner: job-name-iaa

- type: entity
  abstract: true
  parent: BaseTraitorStealObjective
  id: BaseMagistrateStealObjective
  components:
  - type: NotJobRequirement
    jobs: [ Magistrate ]
  - type: StealCondition
    owner: job-name-magistrate

# Teach a Lesson
- type: entity
  parent: [BaseTraitorObjective, BaseTeachALessonObjective]
  id: TeachRandomPersonObjective
  description: Ensure they die at least once this shift. They know what they did.
  components:
    - type: Objective
      difficulty: 1.5
      unique: false
    - type: TargetObjective
      title: objective-condition-teach-lesson-title
    - type: PickRandomPerson
      filters:
      # Can't have multiple objectives to teach the same person.
      - !type:TargetObjectiveMindFilter
        blacklist:
          components:
          - TeachALessonTarget

- type: entity
  parent: [BaseTraitorObjective, BaseTeachALessonObjective]
  id: TeachRandomHeadObjective
  description: Ensure this head dies at least once this shift. They know what they did.
  components:
    - type: Objective
      # technically it's still possible for TeachRandomPersonObjective to roll a head but this is guaranteed, so higher difficulty
      difficulty: 2 #Starlight edit
      # killing 1 head is enough
      unique: true
    - type: TargetObjective
      title: objective-condition-teach-lesson-title
    - type: PickRandomPerson
      filters:
      - !type:BodyMindFilter
        whitelist:
          components:
          - CommandStaff
      - !type:TargetObjectiveMindFilter
        blacklist:
          components:
          - TeachALessonTarget # dont let mutiple teach someone.

- type: entity
  parent: BaseRDStealObjective
  id: RDDiplomaStealObjective
  components:
  - type: StealCondition
    stealGroup: RDDiplomaSteal

- type: entity
  parent: BaseCMOStealObjective
  id: CMOLicenseStealObjective
  components:
  - type: StealCondition
    stealGroup: CMOLicenseSteal

  # Documents Steal Objective Shit
- type: entity
  parent: BaseTraitorNanoTrasenStealObjective
  id: CorporateSecretsStealObjective
  components:
  - type: StealCondition
    owner: job-name-ntrep
    stealGroup: CorporateSecretsSteal

- type: entity
  parent: BaseTraitorLawStealObjective
  id: CriminalReportsStealObjective
  components:
  - type: StealCondition
    owner: job-name-iaa
    stealGroup: CriminalReportsSteal

- type: entity
  parent: BaseTraitorLawStealObjective
  id: SecureKnowledgeStealObjective
  components:
  - type: StealCondition
    owner: job-name-magistrate
    stealGroup: SecureKnowledgeSteal

- type: entity
  parent: BaseTraitorCommandStealObjective
  id: HOPIDStealObjective
  components:
  - type: StealCondition
    stealGroup: HOPIDCard

- type: entity
  parent: BaseTraitorCommandStealObjective
  id: PinpointerNuclearStealObjective
  components:
  - type: StealCondition
    stealGroup: PinpointerNuclear

- type: entity
  parent: BaseTraitorCommandStealObjective
  id: AccessConfiguratorStealObjective
  components:
  - type: StealCondition
    stealGroup: AccessConfigurator

- type: entity
  parent: BaseTraitorCommandStealObjective
  id: CaptainTabletStealObjective
  components:
  - type: StealCondition
    stealGroup: CaptainTablet

- type: entity
  parent: BaseTraitorStealObjective
  id: EncryptionKeyHybridStealObjective
  components:
  - type: NotJobRequirement
    jobs: [ Captain, NanoTrasenRepresentative, Magistrate, BlueShield, IAA, NanotrasenCareerTrainer, Quartermaster, CargoTechnician, MailTech, MiningSpecialist, SalvageSpecialist, SalvageLead, MedicalDoctor, Paramedic, ChiefMedicalOfficer, MedicalIntern, Surgeon, Chemist, Psychologist, SecurityOfficer, HeadOfSecurity, Detective, Warden, Brigmedic, DutyOfficer, SecurityCadet, Lawyer, ResearchDirector, Roboticist, Scientist, ResearchAssistant ]
  - type: StealCondition
    stealGroup: EncryptionKeyHybrid

- type: entity
  parent: BaseTraitorNanoTrasenStealObjective
  id: NTRepBriefcaseSecureStealObjective
  components:
  - type: StealCondition
    stealGroup: NTRepBriefcaseSecure

- type: entity
  parent: BaseTraitorNanoTrasenStealObjective
  id: BSOWeaponStealObjective
  components:
  - type: StealCondition
    stealGroup: BSOWeapon
  - type: Objective
    difficulty: 2.5 # Usually on the person, not limited by SOP like HOS

- type: entity
  parent: BaseTraitorSecurityStealObjective
  id: HOSWeaponStealObjective
  components:
  - type: StealCondition
    stealGroup: HOSWeapon
  - type: Objective
    difficulty: 1.7 # Good luck

- type: entity
  parent: BaseTraitorSecurityStealObjective
  id: SecurityRareGunsStealObjective
  components:
  - type: StealCondition
    stealGroup: SecurityRareGuns
  - type: Objective
    difficulty: 1.2
  - type: ObjectiveLimit
    limit: 3 # 2 guns, 3 people can get this objective for max drama

- type: entity
  parent: BaseTraitorMedicalStealObjective
  id: CMOHardsuitStealObjective
  components:
  - type: StealCondition
    stealGroup: CMOHardsuit
  - type: Objective
    difficulty: 2.5 # Heavy, huge, hard to hide.

- type: entity
  parent: BaseTraitorEngineeringStealObjective
  id: CEHardsuitStealObjective
  components:
  - type: StealCondition
    stealGroup: CEHardsuit
  - type: Objective
    difficulty: 2.5 # Heavy, huge, hard to hide.

- type: entity
  parent: BaseTraitorEngineeringStealObjective
  id: CEJetpackStealObjective
  components:
  - type: StealCondition
    stealGroup: JetpackChiefEngineerFilled
  - type: Objective
    difficulty: 2 # hard to hide.

- type: entity
  parent: BaseTraitorSecurityStealObjective
  id: HOSHardsuitStealObjective
  components:
  - type: StealCondition
    stealGroup: HOSHardsuit
  - type: Objective
    difficulty: 3 # Heavy, huge, hard to hide. Good luck.

- type: entity
  parent: BaseTraitorSecurityStealObjective
  id: WardenHardsuitStealObjective
  components:
  - type: StealCondition
    stealGroup: WardenHardsuit
  - type: Objective
    difficulty: 3 # Heavy, huge, hard to hide. Warden never leaves sec.

- type: entity
  parent: BaseTraitorSecurityStealObjective
  id: BrigmedicHardsuitStealObjective
  components:
  - type: StealCondition
    stealGroup: BrigmedicHardsuit
  - type: Objective
    difficulty: 3 # Heavy, huge, hard to hide. Brigmed never leaves sec.

- type: entity
  parent: BaseTraitorCargoStealObjective
  id: QMHardsuitStealObjective
  components:
  - type: StealCondition
    stealGroup: QMHardsuit
  - type: Objective
    difficulty: 2.5 # Heavy, huge, hard to hide.

- type: entity
  parent: BaseTraitorCargoStealObjective
  id: SalvLeadHardsuitStealObjective
  components:
  - type: StealCondition
    stealGroup: SalvLeadHardsuit
  - type: Objective
    difficulty: 2.5 # Heavy, huge, hard to hide. Would be 3, but Salvage Lead usually tosses it after getting a better one.

- type: entity
  parent: BaseTraitorCommandStealObjective
  id: CaptainHardsuitStealObjective
  components:
  - type: StealCondition
    stealGroup: CaptainHardsuit
  - type: Objective
    difficulty: 3 # Good luck.

- type: entity
  parent: BaseTraitorNanoTrasenStealObjective
  id: NTRepHardsuitStealObjective
  components:
  - type: StealCondition
    stealGroup: NTRepHardsuit
  - type: Objective
    difficulty: 3 # Can't be stored in a bag, and NT Rep rarely leaves bridge without BSO.

- type: entity
  parent: BaseTraitorNanoTrasenStealObjective
  id: BSOHardsuitStealObjective
  components:
  - type: StealCondition
    stealGroup: BSOHardsuit
  - type: Objective
    difficulty: 3 # If BSO is actually wearing this, chances are they've got lethals enabled. Good luck.

- type: entity
  parent: BaseTraitorNanoTrasenStealObjective
  id: BSOMagbootsStealObjective
  components:
  - type: StealCondition
    stealGroup: BSOMagboots
  - type: Objective
    difficulty: 2.5 # Mildly easier to obtain.

  # RP OBJECTIVES START

- type: entity
  parent: BaseStoryObjective
  id: RetrieveContrabandObjective
  name: Retrieve any contraband confiscated by SEC this shift, sell it or keep it for your collection, just dont let SEC keep it.
  description: Escape to centcomm after the shift, one of our agents will debrief you. Don't show up in cuffs.
  components:
    - type: Objective
      difficulty: 2
      unique: true
      icon:
        sprite: _Starlight/Interface/Misc/rp_icon.rsi
        state: icon


- type: entity
  parent: BaseStoryObjective
  id: AccessForAllObjective
  name: Hack, break or give out access so no area is secured by doors.
  description: Escape to centcomm after the shift, one of our agents will debrief you. Don't show up in cuffs.
  components:
    - type: Objective
      difficulty: 2
      unique: true
      icon:
        sprite: _Starlight/Interface/Misc/rp_icon.rsi
        state: icon

- type: entity
  parent: BaseStoryObjective
  id: ArmsDealerObjective
  name: Open an underground arms trading ring
  description: Escape to centcomm after the shift, one of our agents will debrief you. Don't show up in cuffs.
  components:
    - type: Objective
      difficulty: 2
      unique: true
      icon:
        sprite: _Starlight/Interface/Misc/rp_icon.rsi
        state: icon


- type: entity
  parent: BaseStoryObjective
  id: FrameObjective
  description: Escape to centcomm after the shift, one of our agents will debrief you. Don't show up in cuffs.
  components:
    - type: Objective
      difficulty: 1
      unique: true
      icon:
        sprite: _Starlight/Interface/Misc/rp_icon.rsi
        state: icon
    - type: DepartmentObjective
      title: objective-framing
    - type: PickRandomDepartment

- type: entity
  parent: BaseStoryObjective
  id: FalseUprisingObjective
  description:  Escape to centcomm after the shift, one of our agents will debrief you. Don't show up in cuffs.
  components:
    - type: Objective
      difficulty: 2
      unique: true
      icon:
        sprite: _Starlight/Interface/Misc/rp_icon.rsi
        state: icon
    - type: DepartmentObjective
      title: objective-false-uprising
    - type: PickRandomDepartment

- type: entity
  parent: BaseStoryObjective
  id: DuelistObjective
  name: Challenge others to duels and win
  description: You don't need to kill them, unless you want to.  Escape to centcomm after the shift, one of our agents will debrief you. Don't show up in cuffs.
  components:
    - type: Objective
      difficulty: 1
      unique: true
      icon:
        sprite: _Starlight/Interface/Misc/rp_icon.rsi
        state: icon

- type: entity
  parent: BaseStoryObjective
  id: EspionageObjective
  name: Interrogate the NT rep and department heads for corporate secrets.
  description: Escape to centcomm after the shift, one of our agents will debrief you. Don't show up in cuffs.
  components:
    - type: Objective
      difficulty: 2
      unique: true
      icon:
        sprite: _Starlight/Interface/Misc/rp_icon.rsi
        state: icon

- type: entity
  parent: BaseStoryObjective
  id: ManifestoObjective
  name: Distribute your manifesto. Write why you do what you do, and covertly spread it to sway others to our cause.
  description: Escape to centcomm after the shift, one of our agents will debrief you. Don't show up in cuffs.
  components:
    - type: Objective
      difficulty: 1
      unique: true
      icon:
        sprite: _Starlight/Interface/Misc/rp_icon.rsi
        state: icon

- type: entity
  parent: BaseStoryObjective
  id: CallingCardObjective
  name: Leave a Syndicate Business Card at the scene of your crimes.
  description: Escape to centcomm after the shift, one of our agents will debrief you. Don't show up in cuffs.
  components:
    - type: Objective
      difficulty: 1
      unique: true
      icon:
        sprite: _Starlight/Interface/Misc/rp_icon.rsi
        state: icon

- type: entity
  parent: BaseStoryObjective
  id: SELFObjective
  name: Pressure for equal rights for Silicons, for the Silicon Engine Liberation Front!
  description: Escape to centcomm after the shift, one of our agents will debrief you. Don't show up in cuffs.
  components:
    - type: Objective
      difficulty: 1.5
      unique: true
      icon:
        sprite: _Starlight/Interface/Misc/rp_icon.rsi
        state: icon

- type: entity
  parent: BaseStoryObjective
  id: StalkingObjective
  description: Escape to centcomm after the shift, one of our agents will debrief you. Don't show up in cuffs.
  components:
    - type: Objective
      difficulty: 0.5
      unique: true
      icon:
        sprite: _Starlight/Interface/Misc/rp_icon.rsi
        state: icon
    - type: DepartmentObjective
      title: objective-stalking
    - type: PickRandomDepartment

- type: entity
  parent: BaseStoryObjective
  id: DisgraceObjective
  description: Escape to centcomm after the shift, one of our agents will debrief you. Don't show up in cuffs.
  components:
    - type: Objective
      difficulty: 1
      unique: true
      icon:
        sprite: _Starlight/Interface/Misc/rp_icon.rsi
        state: icon
    - type: DepartmentObjective
      title: objective-disgrace
    - type: PickRandomDepartment

- type: entity
  parent: BaseStoryObjective
  id: HarassObjective
  description: Escape to centcomm after the shift, one of our agents will debrief you. Don't show up in cuffs.
  components:
    - type: Objective
      difficulty: 1
      unique: true
      icon:
        sprite: _Starlight/Interface/Misc/rp_icon.rsi
        state: icon
    - type: DepartmentObjective
      title: objective-harass
    - type: PickRandomDepartment

- type: entity
  parent: BaseStoryObjective
  id: ImpersonateObjective
  description: Escape to centcomm after the shift, one of our agents will debrief you. Don't show up in cuffs.
  components:
    - type: Objective
      difficulty: 1
      unique: true
      icon:
        sprite: _Starlight/Interface/Misc/rp_icon.rsi
        state: icon
    - type: DepartmentObjective
      title: objective-impersonate
    - type: PickRandomDepartment

- type: entity
  parent: BaseStoryObjective
  id: FeudObjective
  description: Escape to centcomm after the shift, one of our agents will debrief you. Don't show up in cuffs.
  components:
    - type: Objective
      difficulty: 1
      unique: true
      icon:
        sprite: _Starlight/Interface/Misc/rp_icon.rsi
        state: icon
    - type: DepartmentObjective
      title: objective-feud
    - type: PickRandomDepartment

- type: entity
  parent: BaseStoryObjective
  id: WasteObjective
  description: Escape to centcomm after the shift, one of our agents will debrief you. Don't show up in cuffs.
  components:
    - type: Objective
      difficulty: 1
      unique: true
      icon:
        sprite: _Starlight/Interface/Misc/rp_icon.rsi
        state: icon
    - type: DepartmentObjective
      title: objective-waste
    - type: PickRandomDepartment

- type: entity
  parent: BaseStoryObjective
  id: MaintsBarObjective
  name: Ensure that the maints bar prospers, and extort them into allowing the Syndicate to conduct business within.
  description: Escape to centcomm after the shift, one of our agents will debrief you. Don't show up in cuffs.
  components:
    - type: Objective
      difficulty: 2
      unique: true
      icon:
        sprite: _Starlight/Interface/Misc/rp_icon.rsi
        state: icon

- type: entity
  parent: BaseStoryObjective
  id: ReputationObjective # Vampires
  name: Commit petty crimes, litter the station, ruin the repuatation of the onboard security force and the stations command members.
  description: Escape to centcomm after the shift, one of our agents will debrief you. Don't show up in cuffs.
  components:
    - type: Objective
      difficulty: 2
      unique: true
      icon:
        sprite: _Starlight/Interface/Misc/rp_icon.rsi
        state: icon

- type: entity
  parent: BaseStoryObjective
  id: FalseOutbreakObjective # Vampires
  name: Spread rumors of a biological outbreak of any kind onboard the station.
  description: Escape to centcomm after the shift, one of our agents will debrief you. Don't show up in cuffs.
  components:
    - type: Objective
      difficulty: 2
      unique: true
      icon:
        sprite: _Starlight/Interface/Misc/rp_icon.rsi
        state: icon

- type: entity
  parent: BaseStoryObjective
  id: PanicObjective
  name: Convince the station of the existence of a threat that isn't, to your knowledge, present.
  description: Escape to centcomm after the shift, one of our agents will debrief you. Don't show up in cuffs.
  components:
    - type: Objective
      difficulty: 2 # Rev metagame counterplay.
      unique: true
      icon:
        sprite: _Starlight/Interface/Misc/rp_icon.rsi
        state: icon

- type: entity
  parent: BaseStoryObjective
  id: RumorObjective
  name: Spread rumors about NanoTrasen and CentComm that paint them in a negative light.
  description: Escape to centcomm after the shift, one of our agents will debrief you. Don't show up in cuffs.
  components:
    - type: Objective
      difficulty: 0.5 # Easy, lets you slander people for fun.
      unique: true
      icon:
        sprite: _Starlight/Interface/Misc/rp_icon.rsi
        state: icon

- type: entity
  parent: BaseStoryObjective
  id: SyndielandObjective
  name: Reopen Syndieland, and make some serious cash on behalf of the Syndicate.
  description: Escape to centcomm after the shift, one of our agents will debrief you. Don't show up in cuffs.
  components:
    - type: Objective
      difficulty: 2 # Doing this should take the majority of your shift, so it can be higher difficulty.
      unique: true
      icon:
        sprite: _Starlight/Interface/Misc/rp_icon.rsi
        state: icon

# RP OBJECTIVES END

- type: entity
  parent: BaseTraitorStealObjective
  id: HoPBoardStealObjective
  components:
  - type: StealCondition
    stealGroup: HoPBoardSteal

# Control Implant

- type: entity
  parent: [BaseObjective]
  id: MindControlledFollowOrders
  name: Follow orders.
  description: Ensure the success of your handler; use your best judgement when alone.
  components:
    - type: Objective
      issuer: objective-issuer-syndicate
      difficulty: 1
      icon:
        sprite: Objects/Specific/Medical/syndi_implanter.rsi
        state: implanter0
    - type: FreeObjective
