- type: entity
  abstract: true
  parent: BaseObjective
  id: BaseThiefObjective
  components:
  - type: Objective
    issuer: objective-issuer-thief
  - type: RoleRequirement
    roles:
    - ThiefRole

- type: entity
  abstract: true
  parent: [BaseThiefObjective, BaseStealObjective]
  id: BaseThiefStealObjective
  components:
  - type: StealCondition
    verifyMapExistence: false
    descriptionText: objective-condition-thief-description
    checkStealAreas: true

- type: entity
  abstract: true
  parent: [BaseThiefObjective, BaseThiefStealObjective]
  id: BaseThiefStealCollectionObjective
  components:
  - type: StealCondition
    verifyMapExistence: true

- type: entity
  abstract: true
  parent: [BaseThiefObjective, BaseThiefStealObjective]
  id: BaseThiefStealStructureObjective
  components:
  - type: StealCondition
    verifyMapExistence: true
  - type: Objective
    difficulty: 2 # it's hard to hide

- type: entity
  abstract: true
  parent: [BaseThiefObjective, BaseThiefStealObjective]
  id: BaseThiefStealAnimalObjective
  components:
  - type: StealCondition
    verifyMapExistence: true
    checkAlive: true
    objectiveNoOwnerText: objective-condition-steal-title-alive-no-owner
    descriptionText: objective-condition-thief-animal-description
  - type: Objective
    difficulty: 2 # it's hard to hide

# Collections

- type: entity
  parent: BaseThiefStealCollectionObjective
  id: HeadCloakStealCollectionObjective
  components:
  - type: StealCondition
    stealGroup: HeadCloak
    minCollectionSize: 3
    maxCollectionSize: 6
  - type: Objective
    difficulty: 1.5

- type: entity
  parent: BaseThiefStealCollectionObjective
  id: HeadBedsheetStealCollectionObjective
  components:
  - type: StealCondition
    stealGroup: HeadBedsheet
    minCollectionSize: 3
    maxCollectionSize: 6
  - type: Objective
    difficulty: 1.0

- type: entity
  parent: BaseThiefStealCollectionObjective
  id: StampStealCollectionObjective
  components:
  - type: StealCondition
    stealGroup: Stamp
    minCollectionSize: 5
    maxCollectionSize: 8
  - type: Objective
    difficulty: 1.0

- type: entity
  parent: BaseThiefStealCollectionObjective
  id: DoorRemoteStealCollectionObjective
  components:
  - type: StealCondition
    stealGroup: DoorRemote
    minCollectionSize: 2
    maxCollectionSize: 5
  - type: Objective
    difficulty: 1.5

- type: entity
  parent: BaseThiefStealCollectionObjective
  id: TechnologyDiskStealCollectionObjective
  components:
  - type: NotJobRequirement
    job: Scientist
  - type: StealCondition
    stealGroup: TechnologyDisk
    minCollectionSize: 5
    maxCollectionSize: 15
    verifyMapExistence: false
  - type: Objective
    difficulty: 0.8

- type: entity
  parent: BaseThiefStealCollectionObjective
  id: MailStealCollectionObjective
  components:
  - type: NotJobRequirement
    job: CargoTechnician
  - type: StealCondition
    stealGroup: Mail
    minCollectionSize: 4
    maxCollectionSize: 8
    verifyMapExistence: false
  - type: Objective
    difficulty: 0.8

- type: entity
  parent: BaseThiefStealCollectionObjective
  id: IDCardsStealCollectionObjective
  components:
  - type: NotJobRequirement #Here cause you can buy a personnel crate from cargo which is 8 ID cards. Meaning the ID you start with is number nine and you only need to steal one.
    job: CargoTechnician #TODO: add salvage specialist
  - type: StealCondition
    stealGroup: IDCard
    minCollectionSize: 5
    maxCollectionSize: 10
    verifyMapExistence: false
  - type: Objective
    difficulty: 0.7

- type: entity
  parent: BaseThiefStealCollectionObjective
  id: OfficerHandgunsStealCollectionObjective
  components:
  - type: NotJobRequirement
    job: SecurityOfficer #TODO: Add HoS, Detective, and Warden
  - type: StealCondition
    stealGroup: OfficerHandgun
    minCollectionSize: 2
    maxCollectionSize: 5
    verifyMapExistence: false
  - type: Objective
    difficulty: 1.2

- type: entity
  parent: BaseThiefStealCollectionObjective
  id: LAMPStealCollectionObjective
  components:
  - type: SpeciesRequirement
    allowedSpecies:
    - Moth
  - type: StealCondition
    stealGroup: LAMP
    minCollectionSize: 1
    maxCollectionSize: 10
    verifyMapExistence: true
  - type: Objective
    difficulty: 0.1 # just for fun, collecting LAMP on Moth

# steal item

- type: entity                                      #Security subgroup
  parent: BaseThiefStealObjective
  id: ForensicScannerStealObjective
  components:
  - type: NotJobRequirement
    job: Detective
  - type: StealCondition
    stealGroup: ForensicScanner
  - type: Objective
    difficulty: 1

- type: entity
  parent: BaseThiefStealObjective
  id: FlippoEngravedLighterStealObjective
  components:
  - type: NotJobRequirement
    job: Detective
  - type: StealCondition
    stealGroup: FlippoEngravedLighter
  - type: Objective
    difficulty: 0.8

- type: entity
  parent: BaseThiefStealObjective
  id: ClothingHeadHatWardenStealObjective
  components:
  - type: StealCondition
    stealGroup: ClothingHeadHatWarden
  - type: Objective
    difficulty: 1.2

- type: entity
  parent: BaseThiefStealObjective
  id: WantedListCartridgeStealObjective
  components:
  - type: StealCondition
    stealGroup: WantedListCartridge
  - type: Objective
    difficulty: 1

- type: entity                                      #Medical subgroup
  parent: BaseThiefStealObjective
  id: ClothingOuterHardsuitVoidParamedStealObjective
  components:
  - type: NotJobRequirement
    job: Paramedic #TODO: make it so this also includes Medical Doctor, Chemist and Psychologist
  - type: StealCondition
    stealGroup: ClothingOuterHardsuitVoidParamed
  - type: Objective
    difficulty: 1

- type: entity
  parent: BaseThiefStealObjective
  id: MedicalTechFabCircuitboardStealObjective
  components:
  - type: NotJobRequirement
    job: MedicalDoctor #TODO: make it so this also includes Chemist, Paramedic and Psychologist
  - type: StealCondition
    stealGroup: MedicalTechFabCircuitboard
  - type: Objective
    difficulty: 1

- type: entity
  parent: BaseThiefStealObjective
  id: ClothingHeadsetAltMedicalStealObjective
  components:
  - type: NotJobRequirement
    job: ChiefMedicalOfficer
  - type: StealCondition
    stealGroup: ClothingHeadsetAltMedical
  - type: Objective
    difficulty: 1

- type: entity                                      #Engineering subgroup
  parent: BaseThiefStealObjective
  id: FireAxeStealObjective
  components:
  - type: NotJobRequirement
    job: AtmosphericTechnician
  - type: StealCondition
    stealGroup: FireAxe
  - type: Objective
    difficulty: 0.8

- type: entity
  parent: BaseThiefStealObjective
  id: AmePartFlatpackStealObjective
  components:
  - type: NotJobRequirement
    job: StationEngineer #TODO: make it so this also includes Atmos technician
  - type: StealCondition
    stealGroup: AmePartFlatpack
  - type: Objective
    difficulty: 1

- type: entity
  parent: BaseThiefStealObjective
  id: ChiefEngineerToolbeltStealObjective
  components:
  #- type: NotJobRequirement                      Is this really necessary? it's a pickpocket objective. Only thing is that it would be easier to get to CE
  #  Job: StationEngineer, AtmosphericTechnician
  - type: StealCondition
    stealGroup: ChiefEngineerToolBelt
  - type: Objective
    difficulty: .7

- type: entity                                      #Cargo subgroup
  parent: BaseThiefStealObjective
  id: ExpeditionsCircuitboardStealObjective
  components:
  - type: NotJobRequirement
    job: SalvageSpecialist
  - type: StealCondition
    stealGroup: SalvageExpeditionsComputerCircuitboard
  - type: Objective
    difficulty: 0.7

- type: entity
  parent: BaseThiefStealObjective
  id: CargoShuttleCircuitboardStealObjective
  components:
  - type: NotJobRequirement
    job: CargoTechnician #TODO: make it so this also includes Salvage Specialist
  - type: StealCondition
    stealGroup: CargoShuttleConsoleCircuitboard
  - type: Objective
    difficulty: 0.7

- type: entity                                      #Service subgroup
  parent: BaseThiefStealObjective
  id: ClothingEyesHudBeerStealObjective
  components:
  - type: NotJobRequirement
    job: Bartender #TODO: make it so this also includes Service worker
  - type: StealCondition
    stealGroup: ClothingEyesHudBeer
  - type: Objective
    difficulty: 0.3

- type: entity
  parent: BaseThiefStealObjective
  id: BibleStealObjective
  components:
  - type: NotJobRequirement
    job: Chaplain
  - type: StealCondition
    stealGroup: Bible
  - type: Objective
    difficulty: 0.4

- type: entity                                      #Other subgroup
  parent: BaseThiefStealObjective
  id: ClothingNeckGoldmedalStealObjective
  components:
  - type: NotJobRequirement
    job: HeadOfPersonnel
  - type: StealCondition
    stealGroup: ClothingNeckGoldmedal
  - type: Objective
    difficulty: 1

- type: entity
  parent: BaseThiefStealObjective
  id: ClothingNeckClownmedalStealObjective
  components:
  - type: NotJobRequirement
    job: Captain
  - type: StealCondition
    stealGroup: ClothingNeckClownmedal
  - type: Objective
    difficulty: 1

- type: entity
  parent: BaseThiefStealObjective
  id: CaptainSwordStealObjective
  components:
  - type: NotJobRequirement
    job: Captain
  - type: StealCondition
    stealGroup: CaptainSword
  - type: Objective
    difficulty: 1.5

# Structures

- type: entity
  parent: BaseThiefStealStructureObjective
  id: NuclearBombStealObjective
  components:
  - type: NotJobRequirement
    job: Captain
  - type: StealCondition
    stealGroup: NuclearBomb
  - type: Objective
    difficulty: 2.5 #Good luck

- type: entity
  parent: BaseThiefStealStructureObjective
  id: FaxMachineCaptainStealObjective
  components:
  - type: NotJobRequirement
    job: Captain
  - type: StealCondition
    stealGroup: FaxMachineCaptain
  - type: Objective
    difficulty: 2

- type: entity
  parent: BaseThiefStealStructureObjective
  id: ChemDispenserStealObjective
  components:
  - type: NotJobRequirement
    job: Chemist #TODO: make it so this also includes Scientist. It's a roundstart circuit they can construct.
  - type: StealCondition
    stealGroup: ChemDispenser
  - type: Objective
    difficulty: 1

- type: entity
  parent: BaseThiefStealStructureObjective
  id: XenoArtifactStealObjective
  components:
  - type: NotJobRequirement
    job: Scientist
  - type: StealCondition
    stealGroup: XenoArtifact
  - type: Objective
    difficulty: 0.5

- type: entity
  parent: BaseThiefStealStructureObjective
  id: FreezerHeaterStealObjective
  components:
  - type: NotJobRequirement
    job: AtmosphericTechnician #TODO: make it so this also includes Engineer, Medical doctor, chemist and maybe also scientist. Medical doc and chemist cause cryogenics, scientist cause it can be built and is sometimes mapped in artisci
  - type: StealCondition
    stealGroup: FreezerHeater
  - type: Objective
    difficulty: 0.5

- type: entity
  parent: BaseThiefStealStructureObjective
  id: TegStealObjective
  components:
  - type: NotJobRequirement
    job: AtmosphericTechnician #TODO: make it so this also includes Engineer, Several TEG only maps have TEG accessible by standard Engineers
  - type: StealCondition
    stealGroup: Teg
  - type: Objective
    difficulty: 1

- type: entity
  parent: BaseThiefStealStructureObjective
  id: BoozeDispenserStealObjective
  components:
  - type: NotJobRequirement
    job: Bartender #TODO: make it so this also includes Service worker
  - type: StealCondition
    stealGroup: BoozeDispenser
  - type: Objective
    difficulty: 0.5

- type: entity
  parent: BaseThiefStealStructureObjective
  id: AltarNanotrasenStealObjective
  components:
  - type: NotJobRequirement
    job: Chaplain
  - type: StealCondition
    stealGroup: AltarNanotrasen
  - type: Objective
    difficulty: 0.5

- type: entity
  parent: BaseThiefStealStructureObjective
  id: PlantRDStealObjective
  components:
  - type: NotJobRequirement
    job: Scientist
  - type: StealCondition
    stealGroup: PlantRD
  - type: Objective
    difficulty: 0.8

- type: entity
  parent: BaseThiefStealStructureObjective
  id: ToiletGoldenStealObjective
  components:
  - type: NotJobRequirement
    job: Captain
  - type: StealCondition
    stealGroup: ToiletGoldenDirtyWater
  - type: Objective
    difficulty: 2

# Animal

- type: entity
  parent: BaseThiefStealAnimalObjective
  id: IanStealObjective
  components:
  - type: NotJobRequirement
    job: HeadOfPersonnel
  - type: StealCondition
    stealGroup: AnimalIan
  - type: Objective
    difficulty: 2.5

- type: entity
  parent: BaseThiefStealAnimalObjective
  id: BingusStealObjective
  components:
  - type: StealCondition
    stealGroup: AnimalNamedCat
  - type: Objective
    difficulty: 1

- type: entity
  parent: BaseThiefStealAnimalObjective
  id: McGriffStealObjective
  components:
  - type: NotJobRequirement
    job: Detective
  - type: StealCondition
    stealGroup: AnimalMcGriff
  - type: Objective
    difficulty: 1

- type: entity
  parent: BaseThiefStealAnimalObjective
  id: WalterStealObjective
  components:
  - type: NotJobRequirement
    job: Chemist
  - type: StealCondition
    stealGroup: AnimalWalter
  - type: Objective
    difficulty: 1

- type: entity
  parent: BaseThiefStealAnimalObjective
  id: MortyStealObjective
  components:
  - type: StealCondition
    stealGroup: AnimalMorty
  - type: Objective
    difficulty: 0.5

- type: entity
  parent: BaseThiefStealAnimalObjective
  id: RenaultStealObjective
  components:
  - type: NotJobRequirement
    job: Captain
  - type: StealCondition
    stealGroup: AnimalRenault
  - type: Objective
    difficulty: 2

- type: entity
  parent: BaseThiefStealAnimalObjective
  id: ShivaStealObjective
  components:
  - type: NotJobRequirement
    job: SecurityOfficer
  - type: StealCondition
    stealGroup: AnimalShiva
  - type: Objective
    difficulty: 2

- type: entity
  parent: BaseThiefStealAnimalObjective
  id: TropicoStealObjective
  components:
  - type: NotJobRequirement
    job: AtmosphericTechnician
  - type: StealCondition
    stealGroup: AnimalTropico
  - type: Objective
    difficulty: 1

# Escape

- type: entity
  parent: [BaseThiefObjective, BaseLivingObjective]
  id: EscapeThiefShuttleObjective
  name: Escape to centcomm alive and unrestrained.
  description: You don't want your illegal activities to be discovered by anyone, do you?
  components:
  - type: Objective
    difficulty: 1.3
    icon:
      sprite: Structures/Furniture/chairs.rsi
      state: shuttle
  - type: EscapeShuttleCondition
