# SPDX-FileCopyrightText: 2019 DamianX <DamianX@users.noreply.github.com>
# SPDX-FileCopyrightText: 2020 AJCM-git <60196617+AJCM-git@users.noreply.github.com>
# SPDX-FileCopyrightText: 2020 Hugo Laloge <hugo.laloge@gmail.com>
# SPDX-FileCopyrightText: 2020 Peter Wedder <burneddi@gmail.com>
# SPDX-FileCopyrightText: 2020 Pieter-Jan Briers <pieterjan.briers@gmail.com>
# SPDX-FileCopyrightText: 2020 Swept <sweptwastaken@protonmail.com>
# SPDX-FileCopyrightText: 2020 V�ctor Aguilera Puerto <6766154+Zumorica@users.noreply.github.com>
# SPDX-FileCopyrightText: 2020 Ygg01 <daniel.fath7@gmail.com>
# SPDX-FileCopyrightText: 2020 ike709 <ike709@users.noreply.github.com>
# SPDX-FileCopyrightText: 2021 Elijahrane <60792108+Elijahrane@users.noreply.github.com>
# SPDX-FileCopyrightText: 2021 Metal Gear Sloth <metalgearsloth@gmail.com>
# SPDX-FileCopyrightText: 2021 Moony <moonheart08@users.noreply.github.com>
# SPDX-FileCopyrightText: 2021 SweptWasTaken <sweptwastaken@protonmail.com>
# SPDX-FileCopyrightText: 2021 Vera Aguilera Puerto <gradientvera@outlook.com>
# SPDX-FileCopyrightText: 2022 Cheackraze <71046427+Cheackraze@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 Chris V <HoofedEar@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 Flipp Syder <76629141+vulppine@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 Lamrr <96937466+Lamrr@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 Morber <14136326+Morb0@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 Paul Ritter <ritter.paul1@googlemail.com>
# SPDX-FileCopyrightText: 2022 Peptide90 <78795277+Peptide90@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 Rane <60792108+Elijahrane@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 lapatison <100279397+lapatison@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 mirrorcult <lunarautomaton6@gmail.com>
# SPDX-FileCopyrightText: 2023 Colin-Tel <113523727+Colin-Tel@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 Doru991 <75124791+Doru991@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 MagnusCrowe <whiterider1988@yahoo.com>
# SPDX-FileCopyrightText: 2023 Maxtone <124747282+MagnusCrowe@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 Nairod <110078045+Nairodian@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 PrPleGoo <PrPleGoo@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 Puro <103608145+PuroSlavKing@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 Rainfall <rainfey0+git@gmail.com>
# SPDX-FileCopyrightText: 2023 Rainfey <11758391+Rainfey@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 Vordenburg <114301317+Vordenburg@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 Whisper <121047731+QuietlyWhisper@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 brainfood1183 <113240905+brainfood1183@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 crazybrain23 <44417085+crazybrain23@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Aiden <aiden@djkraz.com>
# SPDX-FileCopyrightText: 2024 Alice 'Arimah' Heurlin <30327355+arimah@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Alzore <140123969+Blackern5000@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Brandon Hu <103440971+Brandon-Huu@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 CaasGit <87243814+CaasGit@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Chief-Engineer <119664036+Chief-Engineer@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Cojoke <83733158+Cojoke-dot@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 DrSmugleaf <10968691+DrSmugleaf@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 DrSmugleaf <DrSmugleaf@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Ed <96445749+TheShuEd@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Emisse <99158783+Emisse@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 EmoGarbage404 <retron404@gmail.com>
# SPDX-FileCopyrightText: 2024 Eoin Mcloughlin <helloworld@eoinrul.es>
# SPDX-FileCopyrightText: 2024 Errant <35878406+Errant-4@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Flareguy <78941145+Flareguy@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Hrosts <35345601+Hrosts@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 IProduceWidgets <107586145+IProduceWidgets@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Ian <ignaz.k@live.de>
# SPDX-FileCopyrightText: 2024 Ilya246 <57039557+Ilya246@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Joel Zimmerman <JoelZimmerman@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 JustCone <141039037+JustCone14@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Kara <lunarautomaton6@gmail.com>
# SPDX-FileCopyrightText: 2024 Killerqu00 <47712032+Killerqu00@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Kira Bridgeton <161087999+Verbalase@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Ko4ergaPunk <62609550+Ko4ergaPunk@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Kukutis96513 <146854220+Kukutis96513@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Lye <128915833+Lyroth001@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 MerrytheManokit <167581110+MerrytheManokit@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Mervill <mervills.email@gmail.com>
# SPDX-FileCopyrightText: 2024 Milon <milonpl.git@proton.me>
# SPDX-FileCopyrightText: 2024 Mr. 27 <45323883+Dutch-VanDerLinde@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 MureixloI <132683811+MureixloI@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 NakataRin <45946146+NakataRin@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 OrangeMoronage9622 <whyteterry0092@gmail.com>
# SPDX-FileCopyrightText: 2024 PJBot <pieterjan.briers+bot@gmail.com>
# SPDX-FileCopyrightText: 2024 Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
# SPDX-FileCopyrightText: 2024 Plykiya <58439124+Plykiya@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 PoTeletubby <108604614+PoTeletubby@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Preston Smith <92108534+thetolbean@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Psychpsyo <60073468+Psychpsyo@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Repo <47093363+Titian3@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 RiceMar1244 <138547931+RiceMar1244@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Simon <63975668+Simyon264@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Skubman <ba.fallaria@gmail.com>
# SPDX-FileCopyrightText: 2024 Stalen <33173619+stalengd@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 TakoDragon <69509841+BackeTako@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Tayrtahn <tayrtahn@gmail.com>
# SPDX-FileCopyrightText: 2024 Thomas <87614336+Aeshus@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 TsjipTsjip <19798667+TsjipTsjip@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Ubaser <134914314+UbaserB@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Unkn0wn_Gh0st <shadowstalkermll@gmail.com>
# SPDX-FileCopyrightText: 2024 Vasilis <vasilis@pikachu.systems>
# SPDX-FileCopyrightText: 2024 Vigers Ray <60344369+VigersRay@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Winkarst <74284083+Winkarst-cpu@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 beck-thompson <107373427+beck-thompson@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 chavonadelal <156101927+chavonadelal@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 deathride58 <deathride58@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 degradka <69397649+degradka@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 dffdff2423 <dffdff2423@gmail.com>
# SPDX-FileCopyrightText: 2024 eoineoineoin <github@eoinrul.es>
# SPDX-FileCopyrightText: 2024 foboscheshir <156405958+foboscheshir@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 keronshb <54602815+keronshb@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 lzk <124214523+lzk228@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 metalgearsloth <comedian_vs_clown@hotmail.com>
# SPDX-FileCopyrightText: 2024 nikthechampiongr <32041239+nikthechampiongr@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 plykiya <plykiya@protonmail.com>
# SPDX-FileCopyrightText: 2024 saintmuntzer <47153094+saintmuntzer@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 shamp <140359015+shampunj@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 slarticodefast <161409025+slarticodefast@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 strO0pwafel <153459934+strO0pwafel@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 stroopwafel <j.o.luijkx@student.tudelft.nl>
# SPDX-FileCopyrightText: 2024 themias <89101928+themias@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 to4no_fix <156101927+chavonadelal@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 voidnull000 <18663194+voidnull000@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aidenkrz <aiden@djkraz.com>
# SPDX-FileCopyrightText: 2025 Aineias1 <dmitri.s.kiselev@gmail.com>
# SPDX-FileCopyrightText: 2025 Aviu00 <93730715+Aviu00@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 FaDeOkno <143940725+FaDeOkno@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 GMWQ <garethquaile@gmail.com>
# SPDX-FileCopyrightText: 2025 Gareth Quaile <garethquaile@gmail.com>
# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
# SPDX-FileCopyrightText: 2025 McBosserson <148172569+McBosserson@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Milon <plmilonpl@gmail.com>
# SPDX-FileCopyrightText: 2025 Piras314 <p1r4s@proton.me>
# SPDX-FileCopyrightText: 2025 Rouden <149893554+Roudenn@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 ScarKy0 <106310278+ScarKy0@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Solstice <solsticeofthewinter@gmail.com>
# SPDX-FileCopyrightText: 2025 SolsticeOfTheWinter <solsticeofthewinter@gmail.com>
# SPDX-FileCopyrightText: 2025 Ted Lukin <66275205+pheenty@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 TheBorzoiMustConsume <197824988+TheBorzoiMustConsume@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Tobias Berger <toby@tobot.dev>
# SPDX-FileCopyrightText: 2025 Unlumination <144041835+Unlumy@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 blobadoodle <me@bloba.dev>
# SPDX-FileCopyrightText: 2025 chromiumboy <50505512+chromiumboy@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 deltanedas <39013340+deltanedas@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 deltanedas <@deltanedas:kde.org>
# SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 gluesniffler <linebarrelerenthusiast@gmail.com>
# SPDX-FileCopyrightText: 2025 gus <august.eymann@gmail.com>
# SPDX-FileCopyrightText: 2025 pheenty <fedorlukin2006@gmail.com>
# SPDX-FileCopyrightText: 2025 username <113782077+whateverusername0@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 whateverusername0 <whateveremail>
#
# SPDX-License-Identifier: AGPL-3.0-or-later

- type: entity
  parent: Clothing
  id: IDCardStandard
  name: identification card
  description: A card necessary to access various areas aboard the station.
  abstract: true
  components:
  - type: Sprite
    sprite: Objects/Misc/id_cards.rsi
  - type: Clothing
    slots:
    - idcard
    sprite: Objects/Misc/id_cards.rsi
  - type: Item
    size: Small
    heldPrefix: default
    storedRotation: -90
  - type: Access
  - type: IdCard
  - type: StationRecordKeyStorage
  - type: Tag
    tags:
    - DoorBumpOpener
    - WhitelistChameleon
    - WhitelistChameleonIdCard
  - type: StealTarget
    stealGroup: IDCard
  - type: MiningPoints # DeltaV
  - type: NanoChatCard # DeltaV
  # Goobstation edit start
  - type: EmitSoundOnPickup
    sound:
      path: /Audio/_Goobstation/Items/handling/card_pickup.ogg
      params:
        volume: -5
  - type: EmitSoundOnDrop
    sound:
      path: /Audio/_Goobstation/Items/handling/card_drop.ogg
      params:
        volume: -5
  - type: EmitSoundOnLand
    sound:
      path: /Audio/_Goobstation/Items/handling/card_drop.ogg
      params:
        volume: -5
  # Goobstation edit end

#IDs with layers

- type: entity
  parent: IDCardStandard
  id: PassengerIDCard
  name: assistant ID card
  components:
  - type: Sprite
    layers:
    - state: default
    - state: idpassenger
  - type: PresetIdCard
    job: Passenger

- type: entity
  parent: PassengerIDCard
  id: TechnicalAssistantIDCard
  name: technical assistant ID card
  components:
  - type: PresetIdCard
    job: TechnicalAssistant
  - type: Sprite
    layers:
    - state: default
    - state: idintern-tech

- type: entity
  parent: PassengerIDCard
  id: MedicalInternIDCard
  name: medical intern ID card
  components:
  - type: PresetIdCard
    job: MedicalIntern
  - type: Sprite
    layers:
    - state: default
    - state: idintern-med

- type: entity
  parent: PassengerIDCard
  id: ResearchAssistantIDCard
  name: research assistant ID card
  components:
  - type: PresetIdCard
    job: ResearchAssistant
  - type: Sprite
    layers:
    - state: default
    - state: idintern-sci

- type: entity
  parent: PassengerIDCard
  id: SecurityCadetIDCard
  name: security cadet ID card
  components:
  - type: PresetIdCard
    job: SecurityCadet
  - type: Sprite
    layers:
    - state: default
    - state: idintern-cadet

- type: entity
  parent: PassengerIDCard
  id: ServiceWorkerIDCard
  name: service worker ID card
  components:
  - type: PresetIdCard
    job: ServiceWorker
  - type: Sprite
    layers:
    - state: default
    - state: idintern-service

- type: entity
  parent: [IDCardStandard, BaseGrandTheftContraband]
  id: CaptainIDCard
  name: captain ID card
  components:
  - type: Sprite
    layers:
    - state: gold
    - state: idcaptain
  - type: Item
    heldPrefix: gold
  - type: PresetIdCard
    job: Captain
  - type: Tag
    tags:
    - DoorBumpOpener
    - WhitelistChameleon
    - WhitelistChameleonIdCard
    - HighRiskItem
  - type: StealTarget
    stealGroup: CaptainIDCard

- type: entity
  parent: IDCardStandard
  id: SecurityIDCard
  name: security ID card
  components:
  - type: Sprite
    layers:
    - state: default
    - state: idsecurityofficer
  - type: PresetIdCard
    job: SecurityOfficer

- type: entity
  parent: IDCardStandard
  id: WardenIDCard
  name: warden ID card
  components:
    - type: Sprite
      layers:
        - state: default
        - state: idwarden
    - type: PresetIdCard
      job: Warden

- type: entity
  parent: IDCardStandard
  id: EngineeringIDCard
  name: engineer ID card
  components:
  - type: Sprite
    layers:
    - state: default
    - state: idstationengineer
  - type: PresetIdCard
    job: StationEngineer

- type: entity
  parent: IDCardStandard
  id: MedicalIDCard
  name: medical ID card
  components:
  - type: Sprite
    layers:
    - state: default
    - state: idmedicaldoctor
  - type: PresetIdCard
    job: MedicalDoctor

- type: entity
  parent: IDCardStandard
  id: ParamedicIDCard
  name: paramedic ID card
  components:
  - type: Sprite
    layers:
    - state: default
    - state: idparamedic
  - type: PresetIdCard
    job: Paramedic

- type: entity
  parent: IDCardStandard
  id: ChemistIDCard
  name: chemist ID card
  components:
  - type: Sprite
    layers:
    - state: chemist # Goobstation - Chemist card
    - state: idchemist
  - type: PresetIdCard
    job: Chemist
  - type: Item # Goobstation - Chemist card
    heldPrefix: chemist
    sprite: _Goobstation/Objects/Misc/id_cards.rsi

- type: entity
  parent: IDCardStandard
  id: CargoIDCard
  name: cargo ID card
  components:
  - type: Sprite
    layers:
    - state: default
    - state: idcargotechnician
  - type: PresetIdCard
    job: CargoTechnician

- type: entity
  parent: IDCardStandard
  id: SalvageIDCard
  name: salvage ID card
  components:
  - type: Sprite
    layers:
    - state: default
    - state: idshaftminer
  - type: PresetIdCard
    job: SalvageSpecialist

- type: entity
  parent: IDCardStandard
  id: QuartermasterIDCard
  name: quartermaster ID card
  components:
    - type: Sprite
      layers:
        - state: silver
        - state: idquartermaster
    - type: Item
      heldPrefix: silver
    - type: PresetIdCard
      job: Quartermaster

- type: entity
  parent: IDCardStandard
  id: ResearchIDCard
  name: research ID card
  components:
  - type: Sprite
    layers:
    - state: default
    - state: idscientist
  - type: PresetIdCard
    job: Scientist

- type: entity
  parent: IDCardStandard
  id: ClownIDCard
  name: clown ID card
  components:
  - type: Sprite
    layers:
    - state: default
    - state: idclown
  - type: PresetIdCard
    job: Clown

- type: entity
  parent: IDCardStandard
  id: MimeIDCard
  name: mime ID card
  components:
  - type: Sprite
    layers:
    - state: default
    - state: idmime
  - type: PresetIdCard
    job: Mime

- type: entity
  parent: IDCardStandard
  id: ChaplainIDCard
  name: chaplain ID card
  components:
    - type: Sprite
      layers:
        - state: default
        - state: idchaplain
    - type: PresetIdCard
      job: Chaplain

- type: entity
  parent: IDCardStandard
  id: JanitorIDCard
  name: janitor ID card
  components:
  - type: Sprite
    layers:
    - state: default
    - state: idjanitor
  - type: PresetIdCard
    job: Janitor

- type: entity
  parent: IDCardStandard
  id: BartenderIDCard
  name: bartender ID card
  components:
  - type: Sprite
    layers:
    - state: default
    - state: idbartender
  - type: PresetIdCard
    job: Bartender

- type: entity
  parent: IDCardStandard
  id: PunPunIDCard
  name: pun pun ID card
  components:
    - type: Sprite
      layers:
        - state: default
        - state: idbartender
    - type: PresetIdCard
      job: Bartender
      name: Pun Pun
    - type: Tag #  Ignore Chameleon tags
      tags:
      - DoorBumpOpener

- type: entity
  parent: IDCardStandard
  id: ChefIDCard
  name: chef ID card
  components:
  - type: Sprite
    layers:
    - state: default
    - state: idcook
  - type: PresetIdCard
    job: Chef

- type: entity
  parent: IDCardStandard
  id: BotanistIDCard
  name: botanist ID card
  components:
    - type: Sprite
      layers:
        - state: default
        - state: idbotanist
    - type: PresetIdCard
      job: Botanist

- type: entity
  parent: IDCardStandard
  id: LibrarianIDCard
  name: librarian ID card
  components:
    - type: Sprite
      layers:
        - state: default
        - state: idcurator
    - type: PresetIdCard
      job: Librarian

- type: entity
  parent: IDCardStandard
  id: LawyerIDCard
  name: lawyer ID card
  components:
    - type: Sprite
      layers:
        - state: default
        - state: idlawyer
    - type: PresetIdCard
      job: Lawyer

- type: entity
  parent: IDCardStandard
  id: HoPIDCard
  name: head of personnel ID card
  components:
  - type: Sprite
    layers:
    - state: silver
    - state: idheadofpersonnel
  - type: Item
    heldPrefix: silver
  - type: PresetIdCard
    job: HeadOfPersonnel

- type: entity
  parent: IDCardStandard
  id: CEIDCard
  name: chief engineer ID card
  components:
  - type: Sprite
    layers:
    - state: silver
    - state: idchiefengineer
  - type: Item
    heldPrefix: silver
  - type: PresetIdCard
    job: ChiefEngineer

- type: entity
  parent: IDCardStandard
  id: CMOIDCard
  name: chief medical officer ID card
  components:
  - type: Sprite
    layers:
    - state: silver
    - state: idchiefmedicalofficer
  - type: Item
    heldPrefix: silver
  - type: PresetIdCard
    job: ChiefMedicalOfficer

- type: entity
  parent: IDCardStandard
  id: RDIDCard
  name: research director ID card
  components:
  - type: Sprite
    layers:
    - state: silver
    - state: idresearchdirector
  - type: Item
    heldPrefix: silver
  - type: PresetIdCard
    job: ResearchDirector

- type: entity
  parent: IDCardStandard
  id: HoSIDCard
  name: head of security ID card
  components:
  - type: Sprite
    layers:
    - state: silver
    - state: idheadofsecurity
  - type: Item
    heldPrefix: silver
  - type: PresetIdCard
    job: HeadOfSecurity

- type: entity
  parent: IDCardStandard
  id: VisitorIDCard
  name: visitor ID card
  components:
  - type: Sprite
    layers:
    - state: default
    - state: idvisitor
  - type: IdCard
    jobTitle: job-title-visitor
    jobIcon: JobIconVisitor
  - type: PresetIdCard
    job: Visitor

- type: entity
  parent: IDCardStandard
  id: BrigmedicIDCard
  name: brigmedic ID card
  components:
  - type: Sprite
    layers:
    - state: default
    - state: idbrigmedic
  - type: PresetIdCard # goob
    job: Brigmedic

- type: entity
  parent: IDCardStandard
  id: CentcomIDCard
  name: command officer ID card
  components:
  - type: Sprite
    layers:
    - state: centcom
    - state: idcentcom
  - type: Item
    heldPrefix: blue
  - type: PresetIdCard
    job: CentralCommandOfficial
  - type: NanoChatCard # DeltaV
    listNumber: false

- type: entity
  parent: IDCardStandard
  id: ERTLeaderIDCard
  name: ERT leader ID card
  components:
  - type: Sprite
    layers:
    - state: gold
    - state: ert_commander
  - type: PresetIdCard
    job: ERTLeader
  - type: Item
    heldPrefix: gold
  - type: NanoChatCard # DeltaV
    listNumber: false

- type: entity
  parent: IDCardStandard
  id: ERTChaplainIDCard
  name: ERT chaplain ID card
  components:
  - type: Sprite
    layers:
    - state: gold
    - state: ert_chaplain # we have the sprite for the id but dont have chaplain ERT equipment for now.
  - type: PresetIdCard
    job: ERTChaplain
  - type: Item
    heldPrefix: blue
  - type: NanoChatCard # DeltaV
    listNumber: false

- type: entity
  parent: IDCardStandard
  id: ERTEngineerIDCard
  name: ERT engineer ID card
  components:
  - type: Sprite
    layers:
    - state: gold
    - state: ert_engineer
  - type: PresetIdCard
    job: ERTEngineer
  - type: NanoChatCard # DeltaV
    listNumber: false

- type: entity
  parent: IDCardStandard
  id: ERTJanitorIDCard
  name: ERT janitor ID card
  components:
  - type: Sprite
    layers:
    - state: gold
    - state: ert_janitor
  - type: PresetIdCard
    job: ERTJanitor
  - type: NanoChatCard # DeltaV
    listNumber: false

- type: entity
  parent: IDCardStandard
  id: ERTMedicIDCard
  name: ERT medic ID card
  components:
  - type: Sprite
    layers:
    - state: gold
    - state: ert_medic
  - type: PresetIdCard
    job: ERTMedical
  - type: NanoChatCard # DeltaV
    listNumber: false

- type: entity
  parent: IDCardStandard
  id: ERTSecurityIDCard
  name: ERT security ID card
  components:
  - type: Sprite
    layers:
    - state: gold
    - state: ert_security
  - type: PresetIdCard
    job: ERTSecurity
  - type: NanoChatCard # DeltaV
    listNumber: false

- type: entity
  parent: IDCardStandard
  id: MusicianIDCard
  name: musician ID card
  components:
    - type: Sprite
      layers:
        - state: default
        - state: idmusician
    - type: PresetIdCard
      job: Musician

- type: entity
  parent: IDCardStandard
  id: CentcomIDCardDeathsquad
  name: death squad ID card
  components:
  - type: Sprite
    layers:
    - state: centcom
  - type: Item
    heldPrefix: blue
  - type: PresetIdCard
    job: DeathSquad
  - type: NanoChatCard # DeltaV
    listNumber: false
  - type: Tag
    tags: [] # ignore "WhitelistChameleon" tag

- type: entity
  name: passenger ID card
  parent: IDCardStandard
  id: AgentIDCard
  suffix: Agent
  components:
  # Goob edit
  #- type: PresetIdCard
  #  job: Passenger
  - type: Access
    tags:
    - Maintenance
    - SyndicateAgent
  - type: Sprite
    layers:
    - state: default
    - state: idpassenger
  - type: AgentIDCard
  - type: ActivatableUI
    key: enum.AgentIDCardUiKey.Key
    inHandsOnly: true
  - type: Tag
    tags:
    - DoorBumpOpener
  - type: ChameleonClothing
    slot: [idcard]
    default: PassengerIDCard
    requireTag: WhitelistChameleonIdCard
  - type: UserInterface
    interfaces:
      enum.AgentIDCardUiKey.Key:
        type: AgentIDCardBoundUserInterface
      enum.ChameleonUiKey.Key:
        type: ChameleonBoundUserInterface
  - type: NanoChatCard # DeltaV
    listNumber: false

- type: entity
  name: passenger ID card
  parent: AgentIDCard
  id: NukieAgentIDCard
  suffix: Nukie
  components:
  - type: Access
    tags:
    - Maintenance
    - SyndicateAgent
    - NuclearOperative

- type: entity
  parent: IDCardStandard
  id: AtmosIDCard
  name: atmospheric technician ID card
  components:
  - type: Sprite
    layers:
    - state: orange
    - state: idatmospherictechnician
  - type: PresetIdCard
    job: AtmosphericTechnician

- type: entity
  parent: [ IDCardStandard, BaseSyndicateContraband ]
  id: SyndicateIDCard
  name: syndicate ID card
  components:
  - type: Sprite
    layers:
    - state: syndie
  - type: Access
    tags:
    - NuclearOperative
    - SyndicateAgent
  - type: NanoChatCard # DeltaV
    listNumber: false

- type: entity
  parent: [ IDCardStandard, BaseMajorContraband ]
  id: PirateIDCard
  name: pirate ID card
  components:
  - type: Sprite
    layers:
    - state: pirate
  - type: Access
    tags:
    - NuclearOperative
    - SyndicateAgent
  - type: NanoChatCard # DeltaV
    listNumber: false

- type: entity
  parent: IDCardStandard
  id: PsychologistIDCard
  name: psychologist ID card
  components:
  - type: Sprite
    layers:
    - state: default
    - state: idpsychologist
  - type: PresetIdCard
    job: Psychologist

- type: entity
  parent: IDCardStandard
  id: ReporterIDCard
  name: reporter ID card
  components:
  - type: Sprite
    layers:
    - state: default
    - state: idreporter
  - type: PresetIdCard
    job: Reporter

- type: entity
  parent: IDCardStandard
  id: BoxerIDCard
  name: boxer ID card
  components:
  - type: Sprite
    layers:
    - state: default
    - state: idboxer
  - type: PresetIdCard
    job: Boxer

- type: entity
  parent: IDCardStandard
  id: ZookeeperIDCard
  name: zookeeper ID card
  components:
  - type: Sprite
    layers:
    - state: default
    - state: idzookeeper
  - type: PresetIdCard
    job: Zookeeper

- type: entity
  parent: IDCardStandard
  id: DetectiveIDCard
  name: detective ID card
  components:
  - type: Sprite
    layers:
    - state: default
    - state: iddetective
  - type: PresetIdCard
    job: Detective

- type: entity
  parent: IDCardStandard
  id: PrisonerIDCard
  name: prisoner ID card
  description: A generically printed ID card for scummy prisoners.
  components:
  - type: Sprite
    layers:
    - state: orange
  - type: Item
    heldPrefix: orange
  - type: Access
    tags:
    - GenpopEnter
  - type: GenpopIdCard
  - type: IdCard
    jobTitle: job-name-prisoner
    jobIcon: JobIconPrisoner
    canMicrowave: false
  - type: ExpireIdCard
    expireMessage: genpop-prisoner-id-expire
    expiredAccess:
    - GenpopLeave
  - type: Speech
    speechVerb: Robotic
  - type: Tag
    tags:
    - DoorBumpOpener
    - WhitelistChameleon
    - WhitelistChameleonIdCard
    - Recyclable
  - type: StaticPrice # these are infinitely producible.
    price: 0

- type: entity
  parent: CentcomIDCard
  id: CBURNIDcard
  name: CBURN ID card
  suffix: CBURN
  components:
  - type: Sprite
    layers:
    - state: centcom
  - type: Item
    heldPrefix: blue
  - type: PresetIdCard
    job: CBURN
  - type: NanoChatCard # DeltaV
    listNumber: false

- type: entity
  parent: IDCardStandard
  id: CluwneIDCard
  name: cluwne ID card
  suffix: Unremoveable
  components:
  - type: Sprite
    layers:
    - state: default
    - state: idcluwne
  - type: IdCard
    jobTitle: job-title-cluwne
    jobIcon: JobIconCluwne
  - type: Unremoveable
  - type: NanoChatCard # DeltaV
    listNumber: false

- type: entity
  parent: EngineeringIDCard
  id: SeniorEngineerIDCard
  name: senior engineer ID card
  components:
  - type: Sprite
    layers:
    - state: default
    - state: idseniorengineer

- type: entity
  parent: ResearchIDCard
  id: SeniorResearcherIDCard
  name: senior researcher ID card
  components:
  - type: Sprite
    layers:
    - state: default
    - state: idseniorresearcher

- type: entity
  parent: MedicalIDCard
  id: SeniorPhysicianIDCard
  name: senior physician ID card
  components:
  - type: Sprite
    layers:
    - state: default
    - state: idseniorphysician

- type: entity
  parent: SecurityIDCard
  id: SeniorOfficerIDCard
  name: senior officer ID card
  components:
  - type: Sprite
    layers:
    - state: default
    - state: idseniorofficer

- type: entity
  parent: IDCardStandard
  id: UniversalIDCard
  name: universal ID card
  suffix: Admin
  description: An ID card that gives you access beyond your wildest dreams.
  components:
  - type: Sprite
    sprite: Objects/Misc/id_cards.rsi
    layers:
    - state: admin
    - state: idadmin
  - type: Clothing
    sprite: Objects/Misc/id_cards.rsi
  - type: Item
    heldPrefix: green
  - type: IdCard
    jobTitle: job-title-universal
    jobIcon: JobIconAdmin
  - type: Access
    groups:
    - AllAccess
    - Silicon
    tags:
    - CentralCommand
    - NuclearOperative
    - SyndicateAgent
    - Wizard
    - Xenoborg
    # Goobstation
    - NanotrasenRepresentative
    - BlueshieldOfficer
  - type: NanoChatCard # DeltaV
    notificationsMuted: true
    listNumber: false
  - type: Tag #  Ignore Chameleon tags
    tags:
    - DoorBumpOpener
  - type: AgentIDCard
  - type: ActivatableUI
    key: enum.AgentIDCardUiKey.Key
    inHandsOnly: true
  - type: UserInterface
    interfaces:
      enum.AgentIDCardUiKey.Key:
        type: AgentIDCardBoundUserInterface
