- 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

#IDs with layers

- type: entity
  parent: IDCardStandard
  id: PassengerIDCard
  name: passenger ID card
  components:
  - type: Sprite
    layers:
    - state: default
    - sprite: &icon-rsi Interface/Misc/job_icons.rsi
      offset: &icon-offset -0.09375, 0.0625 #3 pixels left, 2 pixels up
      state: Passenger
  - type: PresetIdCard
    job: Passenger

#Command

- type: entity
  parent: [IDCardStandard, BaseGrandTheftContraband]
  id: CaptainIDCard
  name: captain ID card
  components:
  - type: Sprite
    layers:
    - state: gold
    - state: stripe_top
      color: "#1b67a5"
    - state: stripe_bottom
      color: "#0e4069"
    - sprite: *icon-rsi
      offset: *icon-offset
      state: Captain
  - type: Item
    heldPrefix: gold
  - type: PresetIdCard
    job: Captain
  - type: Tag
    tags:
    - DoorBumpOpener
    - WhitelistChameleon
    - WhitelistChameleonIdCard
    - HighRiskItem
  - type: StealTarget
    stealGroup: CaptainIDCard

- type: entity
  parent: IDCardStandard
  id: HoPIDCard
  name: head of personnel ID card
  components:
  - type: Sprite
    layers:
    - state: silver
    - state: stripe_top
      color: &color-service-top "#639137"
    - state: stripe_bottom
      color: &color-service-bottom "#446326"
    - sprite: *icon-rsi
      offset: *icon-offset
      state: HeadOfPersonnel
  - 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: stripe_top
      color: &color-engineering-top "#ffa62b"
    - state: stripe_bottom
      color: &color-engineering-bottom "#bc5b00"
    - sprite: *icon-rsi
      offset: *icon-offset
      state: ChiefEngineer
  - 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: stripe_top
      color: &color-medical-top "#68aed6"
    - state: stripe_bottom
      color: &color-medical-bottom "#325f7a"
    - sprite: *icon-rsi
      offset: *icon-offset
      state: ChiefMedicalOfficer
  - 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: stripe_top
      color: &color-science-top "#a53aaa"
    - state: stripe_bottom
      color: &color-science-bottom "#652368"
    - sprite: *icon-rsi
      offset: *icon-offset
      state: ResearchDirector
  - 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: stripe_top
      color: &color-security-top "#cb0000"
    - state: stripe_bottom
      color: &color-security-bottom "#830000"
    - sprite: *icon-rsi
      offset: *icon-offset
      state: HeadOfSecurity
  - type: Item
    heldPrefix: silver
  - type: PresetIdCard
    job: HeadOfSecurity

- type: entity
  parent: IDCardStandard
  id: QuartermasterIDCard
  name: quartermaster ID card
  components:
  - type: Sprite
    layers:
    - state: silver
    - state: stripe_top
      color: &color-supply-top "#b18644"
    - state: stripe_bottom
      color: &color-supply-bottom "#5b4523"
    - sprite: *icon-rsi
      offset: *icon-offset
      state: QuarterMaster
  - type: Item
    heldPrefix: silver
  - type: PresetIdCard
    job: Quartermaster

#Engineering

- type: entity
  parent: IDCardStandard
  id: TechnicalAssistantIDCard
  name: technical assistant ID card
  components:
  - type: Sprite
    layers:
    - state: default
    - state: stripe_top
      color: *color-engineering-top
    - state: stripe_bottom
      color: *color-engineering-bottom
    - sprite: *icon-rsi
      offset: *icon-offset
      state: TechnicalAssistant
  - type: PresetIdCard
    job: TechnicalAssistant

- type: entity
  parent: IDCardStandard
  id: EngineeringIDCard
  name: engineer ID card
  components:
  - type: Sprite
    layers:
    - state: default
    - state: stripe_top
      color: *color-engineering-top
    - state: stripe_bottom
      color: *color-engineering-bottom
    - sprite: *icon-rsi
      offset: *icon-offset
      state: StationEngineer
  - type: PresetIdCard
    job: StationEngineer

- type: entity
  parent: IDCardStandard
  id: AtmosIDCard
  name: atmospheric technician ID card
  components:
  - type: Sprite
    layers:
    - state: default
    - state: stripe_top
      color: *color-engineering-top
    - state: stripe_bottom
      color: *color-engineering-bottom
    - sprite: *icon-rsi
      offset: *icon-offset
      state: AtmosphericTechnician
  - type: PresetIdCard
    job: AtmosphericTechnician

- type: entity
  parent: EngineeringIDCard
  id: SeniorEngineerIDCard
  name: senior engineer ID card
  components:
  - type: Sprite
    layers:
    - state: default
    - state: stripe_top
      color: *color-engineering-top
    - state: stripe_bottom
      color: *color-engineering-bottom
    - sprite: *icon-rsi
      offset: *icon-offset
      state: SeniorEngineer

#Medical

- type: entity
  parent: IDCardStandard
  id: MedicalInternIDCard
  name: medical intern ID card
  components:
  - type: Sprite
    layers:
    - state: default
    - state: stripe_top
      color: *color-medical-top
    - state: stripe_bottom
      color: *color-medical-bottom
    - sprite: *icon-rsi
      offset: *icon-offset
      state: MedicalIntern
  - type: PresetIdCard
    job: MedicalIntern

- type: entity
  parent: IDCardStandard
  id: MedicalIDCard
  name: medical ID card
  components:
  - type: Sprite
    layers:
    - state: default
    - state: stripe_top
      color: *color-medical-top
    - state: stripe_bottom
      color: *color-medical-bottom
    - sprite: *icon-rsi
      offset: *icon-offset
      state: MedicalDoctor
  - type: PresetIdCard
    job: MedicalDoctor

- type: entity
  parent: IDCardStandard
  id: ParamedicIDCard
  name: paramedic ID card
  components:
  - type: Sprite
    layers:
    - state: default
    - state: stripe_top
      color: *color-medical-top
    - state: stripe_bottom
      color: *color-medical-bottom
    - sprite: *icon-rsi
      offset: *icon-offset
      state: Paramedic
  - type: PresetIdCard
    job: Paramedic

- type: entity
  parent: IDCardStandard
  id: ChemistIDCard
  name: chemist ID card
  components:
  - type: Sprite
    layers:
    - state: default
    - state: stripe_top
      color: *color-medical-top
    - state: stripe_bottom
      color: *color-medical-bottom
    - sprite: *icon-rsi
      offset: *icon-offset
      state: Chemist
  - type: PresetIdCard
    job: Chemist

- type: entity
  parent: IDCardStandard
  id: PsychologistIDCard
  name: psychologist ID card
  components:
  - type: Sprite
    layers:
    - state: default
    - state: stripe_top
      color: *color-medical-top
    - state: stripe_bottom
      color: *color-medical-bottom
    - sprite: *icon-rsi
      offset: *icon-offset
      state: Psychologist
  - type: PresetIdCard
    job: Psychologist

- type: entity
  parent: MedicalIDCard
  id: SeniorPhysicianIDCard
  name: senior physician ID card
  components:
  - type: Sprite
    layers:
    - state: default
    - state: stripe_top
      color: *color-medical-top
    - state: stripe_bottom
      color: *color-medical-bottom
    - sprite: *icon-rsi
      offset: *icon-offset
      state: SeniorPhysician

#Science

- type: entity
  parent: IDCardStandard
  id: ResearchAssistantIDCard
  name: research assistant ID card
  components:
  - type: Sprite
    layers:
    - state: default
    - state: stripe_top
      color: *color-science-top
    - state: stripe_bottom
      color: *color-science-bottom
    - sprite: *icon-rsi
      offset: *icon-offset
      state: ResearchAssistant
  - type: PresetIdCard
    job: ResearchAssistant

- type: entity
  parent: IDCardStandard
  id: ResearchIDCard
  name: research ID card
  components:
  - type: Sprite
    layers:
    - state: default
    - state: stripe_top
      color: *color-science-top
    - state: stripe_bottom
      color: *color-science-bottom
    - sprite: *icon-rsi
      offset: *icon-offset
      state: Scientist
  - type: PresetIdCard
    job: Scientist

- type: entity
  parent: ResearchIDCard
  id: SeniorResearcherIDCard
  name: senior researcher ID card
  components:
  - type: Sprite
    layers:
    - state: default
    - state: stripe_top
      color: *color-science-top
    - state: stripe_bottom
      color: *color-science-bottom
    - sprite: *icon-rsi
      offset: *icon-offset
      state: SeniorResearcher

#Security

- type: entity
  parent: IDCardStandard
  id: SecurityCadetIDCard
  name: security cadet ID card
  components:
  - type: Sprite
    layers:
    - state: default
    - state: stripe_top
      color: *color-security-top
    - state: stripe_bottom
      color: *color-security-bottom
    - sprite: *icon-rsi
      offset: *icon-offset
      state: SecurityCadet
  - type: PresetIdCard
    job: SecurityCadet

- type: entity
  parent: IDCardStandard
  id: SecurityIDCard
  name: security ID card
  components:
  - type: Sprite
    layers:
    - state: default
    - state: stripe_top
      color: *color-security-top
    - state: stripe_bottom
      color: *color-security-bottom
    - sprite: *icon-rsi
      offset: *icon-offset
      state: SecurityOfficer
  - type: PresetIdCard
    job: SecurityOfficer

- type: entity
  parent: IDCardStandard
  id: WardenIDCard
  name: warden ID card
  components:
  - type: Sprite
    layers:
    - state: default
    - state: stripe_top
      color: *color-security-top
    - state: stripe_bottom
      color: *color-security-bottom
    - sprite: *icon-rsi
      offset: *icon-offset
      state: Warden
  - type: PresetIdCard
    job: Warden

- type: entity
  parent: IDCardStandard
  id: DetectiveIDCard
  name: detective ID card
  components:
  - type: Sprite
    layers:
    - state: default
    - state: stripe_top
      color: *color-security-top
    - state: stripe_bottom
      color: *color-security-bottom
    - sprite: *icon-rsi
      offset: *icon-offset
      state: Detective
  - type: PresetIdCard
    job: Detective

- type: entity
  parent: IDCardStandard
  id: BrigmedicIDCard
  name: brigmedic ID card
  components:
  - type: Sprite
    layers:
    - state: default
    - state: stripe_top
      color: *color-security-top
    - state: stripe_bottom
      color: *color-security-bottom
    - sprite: *icon-rsi
      offset: *icon-offset
      state: Brigmedic

- type: entity
  parent: SecurityIDCard
  id: SeniorOfficerIDCard
  name: senior officer ID card
  components:
  - type: Sprite
    layers:
    - state: default
    - state: stripe_top
      color: *color-security-top
    - state: stripe_bottom
      color: *color-security-bottom
    - sprite: *icon-rsi
      offset: *icon-offset
      state: SeniorOfficer

#Service

- type: entity
  parent: IDCardStandard
  id: ServiceWorkerIDCard
  name: service worker ID card
  components:
  - type: Sprite
    layers:
    - state: default
    - state: stripe_top
      color: *color-service-top
    - state: stripe_bottom
      color: *color-service-bottom
    - sprite: *icon-rsi
      offset: *icon-offset
      state: ServiceWorker
  - type: PresetIdCard
    job: ServiceWorker

- type: entity
  parent: IDCardStandard
  id: ClownIDCard
  name: clown ID card
  components:
  - type: Sprite
    layers:
    - state: default
    - state: stripe_clown
    - sprite: *icon-rsi
      offset: *icon-offset
      state: Clown
  - type: PresetIdCard
    job: Clown

- type: entity
  parent: IDCardStandard
  id: MimeIDCard
  name: mime ID card
  components:
  - type: Sprite
    layers:
    - state: default
    - state: stripe_top
      color: "#2d2d2d"
    - state: stripe_bottom
      color: "#1d1d1d"
    - sprite: *icon-rsi
      offset: *icon-offset
      state: Mime
  - type: PresetIdCard
    job: Mime

- type: entity
  parent: IDCardStandard
  id: MusicianIDCard
  name: musician ID card
  components:
  - type: Sprite
    layers:
    - state: default
    - state: stripe_top
      color: "#6f56b8"
    - state: stripe_bottom
      color: "#524089"
    - sprite: *icon-rsi
      offset: *icon-offset
      state: Musician
  - type: PresetIdCard
    job: Musician

- type: entity
  parent: IDCardStandard
  id: ChaplainIDCard
  name: chaplain ID card
  components:
  - type: Sprite
    layers:
    - state: default
    - state: stripe_top
      color: *color-service-top
    - state: stripe_bottom
      color: *color-service-bottom
    - sprite: *icon-rsi
      offset: *icon-offset
      state: Chaplain
  - type: PresetIdCard
    job: Chaplain

- type: entity
  parent: IDCardStandard
  id: JanitorIDCard
  name: janitor ID card
  components:
  - type: Sprite
    layers:
    - state: default
    - state: stripe_top
      color: *color-service-top
    - state: stripe_bottom
      color: *color-service-bottom
    - sprite: *icon-rsi
      offset: *icon-offset
      state: Janitor
  - type: PresetIdCard
    job: Janitor

- type: entity
  parent: IDCardStandard
  id: BartenderIDCard
  name: bartender ID card
  components:
  - type: Sprite
    layers:
    - state: default
    - state: stripe_top
      color: *color-service-top
    - state: stripe_bottom
      color: *color-service-bottom
    - sprite: *icon-rsi
      offset: *icon-offset
      state: Bartender
  - type: PresetIdCard
    job: Bartender

- type: entity
  parent: IDCardStandard
  id: PunPunIDCard
  name: pun pun ID card
  components:
  - type: Sprite
    layers:
    - state: default
    - state: stripe_top
      color: *color-service-top
    - state: stripe_bottom
      color: *color-service-bottom
    - sprite: *icon-rsi
      offset: *icon-offset
      state: Bartender
  - 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: stripe_top
      color: *color-service-top
    - state: stripe_bottom
      color: *color-service-bottom
    - sprite: *icon-rsi
      offset: *icon-offset
      state: Chef
  - type: PresetIdCard
    job: Chef

- type: entity
  parent: IDCardStandard
  id: BotanistIDCard
  name: botanist ID card
  components:
  - type: Sprite
    layers:
    - state: default
    - state: stripe_top
      color: *color-service-top
    - state: stripe_bottom
      color: *color-service-bottom
    - sprite: *icon-rsi
      offset: *icon-offset
      state: Botanist
  - type: PresetIdCard
    job: Botanist

- type: entity
  parent: IDCardStandard
  id: LibrarianIDCard
  name: librarian ID card
  components:
  - type: Sprite
    layers:
    - state: default
    - state: stripe_top
      color: *color-service-top
    - state: stripe_bottom
      color: *color-service-bottom
    - sprite: *icon-rsi
      offset: *icon-offset
      state: Librarian
  - type: PresetIdCard
    job: Librarian

- type: entity
  parent: IDCardStandard
  id: LawyerIDCard
  name: lawyer ID card
  components:
  - type: Sprite
    layers:
    - state: default
    - state: stripe_top
      color: *color-service-top
    - state: stripe_bottom
      color: *color-service-bottom
    - sprite: *icon-rsi
      offset: *icon-offset
      state: Lawyer
  - type: PresetIdCard
    job: Lawyer

- type: entity
  parent: IDCardStandard
  id: ReporterIDCard
  name: reporter ID card
  components:
  - type: Sprite
    layers:
    - state: default
    - state: stripe_top
      color: *color-service-top
    - state: stripe_bottom
      color: *color-service-bottom
    - sprite: *icon-rsi
      offset: *icon-offset
      state: Reporter
  - type: PresetIdCard
    job: Reporter

- type: entity
  parent: IDCardStandard
  id: BoxerIDCard
  name: boxer ID card
  components:
  - type: Sprite
    layers:
    - state: default
    - state: stripe_top
      color: *color-service-top
    - state: stripe_bottom
      color: *color-service-bottom
    - sprite: *icon-rsi
      offset: *icon-offset
      state: Boxer

- type: entity
  parent: IDCardStandard
  id: ZookeeperIDCard
  name: zookeeper ID card
  components:
  - type: Sprite
    layers:
    - state: default
    - state: stripe_top
      color: *color-service-top
    - state: stripe_bottom
      color: *color-service-bottom
    - sprite: *icon-rsi
      offset: *icon-offset
      state: Zookeeper

#Supply

- type: entity
  parent: IDCardStandard
  id: CargoIDCard
  name: cargo ID card
  components:
  - type: Sprite
    layers:
    - state: default
    - state: stripe_top
      color: *color-supply-top
    - state: stripe_bottom
      color: *color-supply-bottom
    - sprite: *icon-rsi
      offset: *icon-offset
      state: CargoTechnician
  - type: PresetIdCard
    job: CargoTechnician

- type: entity
  parent: CargoIDCard
  id: SeniorCourierIDCard
  name: senior courier ID card
  components:
  - type: Sprite
    layers:
    - state: default
    - state: stripe_top
      color: *color-supply-top
    - state: stripe_bottom
      color: *color-supply-bottom
    - sprite: *icon-rsi
      offset: *icon-offset
      state: SeniorCourier

- type: entity
  parent: IDCardStandard
  id: SalvageIDCard
  name: salvage ID card
  components:
  - type: Sprite
    layers:
    - state: default
    - state: stripe_top
      color: *color-supply-top
    - state: stripe_bottom
      color: *color-supply-bottom
    - sprite: *icon-rsi
      offset: *icon-offset
      state: ShaftMiner
  - type: PresetIdCard
    job: SalvageSpecialist

#Misc.

- 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
    - sprite: *icon-rsi
      offset: *icon-offset
      state: Prisoner
  - 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: IDCardStandard
  id: CluwneIDCard
  name: cluwne ID card
  suffix: Unremoveable
  components:
  - type: Sprite
    layers:
    - state: default
    - state: stripe_top
      color: "#5dc574"
    - state: stripe_bottom
      color: "#3f9b53"
    - sprite: *icon-rsi
      offset: *icon-offset
      state: Cluwne
  - type: IdCard
    jobTitle: job-title-cluwne
    jobIcon: JobIconCluwne
  - type: Unremoveable

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

#Antags

- type: entity
  parent: [PassengerIDCard, BaseChameleon]
  id: AgentIDCard
  suffix: Agent
  components:
  - type: Access
    tags:
    - Maintenance
    - SyndicateAgent
  - type: AgentIDCard
    iconGroups:
    - CommandIconGroup
    - SecurityIconGroup
    - ResearchIconGroup
    - CargoIconGroup
    - EngineeringIconGroup
    - MedicalIconGroup
    - ServiceIconGroup
    - CivilianIconGroup
    - EntertainerIconGroup
    - SiliconIconGroup
    - BlankIconGroup
    - ThreatIconGroup
    - CentCommIconGroup
  - type: UIRequiresLock
  - type: ActivatableUI
    key: enum.AgentIDCardUiKey.Key
    verbText: agent-id-open-ui-verb
  - 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: entity
  parent: AgentIDCard
  id: NukieAgentIDCard
  suffix: Nukie
  components:
  - type: Access
    tags:
    - Maintenance
    - SyndicateAgent
    - NuclearOperative

- type: entity
  parent: [ IDCardStandard, BaseSyndicateContraband ]
  id: SyndicateIDCard
  name: syndicate ID card
  components:
  - type: Sprite
    layers:
    - state: black
    - state: stripe_top
      color: &color-syndicate-top "#e80c0c"
    - state: stripe_bottom
      color: &color-syndicate-bottom "#960606"
    - sprite: *icon-rsi
      offset: *icon-offset
      state: Syndicate
  - type: IdCard
    jobIcon: JobIconSyndicate
  - type: Item
    heldPrefix: black
  - type: Access
    tags:
    - NuclearOperative
    - SyndicateAgent

- type: entity
  parent: [ SyndicateIDCard, BaseSyndicateContraband ]
  id: SyndiOperativeIDCard
  name: syndicate operative ID card
  components:
  - type: Sprite
    layers:
    - state: black
    - state: stripe_top
      color: *color-syndicate-top
    - state: stripe_bottom
      color: *color-syndicate-bottom
    - sprite: *icon-rsi
      offset: *icon-offset
      state: SyndicateOperative
  - type: AgentIDCard
  - type: IdCard
    jobIcon: JobIconSyndicateOperative

- type: entity
  parent: [ SyndiOperativeIDCard, BaseSyndicateContraband ]
  id: SyndiCorpsmanIDCard
  name: syndicate corpsman ID card
  components:
  - type: Sprite
    layers:
    - state: black
    - state: stripe_top
      color: *color-syndicate-top
    - state: stripe_bottom
      color: *color-syndicate-bottom
    - sprite: *icon-rsi
      offset: *icon-offset
      state: SyndicateCorpsman
  - type: IdCard
    jobIcon: JobIconSyndicateCorpsman

- type: entity
  parent: [ SyndiOperativeIDCard, BaseSyndicateContraband ]
  id: SyndiCommanderIDCard
  name: syndicate commander ID card
  components:
  - type: Sprite
    layers:
    - state: black
    - state: stripe_top
      color: *color-syndicate-top
    - state: stripe_bottom
      color: *color-syndicate-bottom
    - sprite: *icon-rsi
      offset: *icon-offset
      state: SyndicateCommander
  - type: IdCard
    jobIcon: JobIconSyndicateCommander

- type: entity
  parent: [ IDCardStandard, BaseHighlyIllegalContraband ]
  id: NinjaIDCard
  name: ninja ID card
  suffix: Ninja
  components:
  - type: Sprite
    layers:
    - state: ninja
    - state: stripe_top
      color: "#38D848"
    - state: stripe_bottom
      color: "#309000"
    - sprite: *icon-rsi
      offset: *icon-offset
      state: Ninja
  - type: Item
    heldPrefix: green
  - type: AgentIDCard
  - type: IdCard
    jobIcon: JobIconNinja
  - type: Access
    tags:
    - Maintenance

- type: entity
  parent: [ IDCardStandard, BaseMajorContraband ]
  id: PirateIDCard
  name: pirate ID card
  components:
  - type: Sprite
    layers:
    - state: pirate
    - sprite: *icon-rsi
      offset: *icon-offset
      state: Pirate
  - type: Item
    heldPrefix: orange #this is close enough to the weird puce color pirate IDs have going on
  - type: IdCard
    jobIcon: JobIconPirate

- type: entity
  parent: IDCardStandard
  id: XenoborgIDCard
  name: xenoborg ID card
  components:
  - type: Sprite
    layers:
    - state: default
  - type: Access
    tags:
    - Xenoborg

- type: entity
  parent: [ IDCardStandard, BaseMagicalContraband ]
  id: WizardIDCard
  name: wizard ID card
  components:
  - type: Sprite
    layers:
    - state: wizard
    - sprite: *icon-rsi
      offset: *icon-offset
      state: Wizard
  - type: Item
    heldPrefix: green
  - type: Access
    tags:
    - Wizard
    - External
    - Maintenance
  - type: IdCard
    jobIcon: JobIconWizard

#ERT/Centcomm

- type: entity
  parent: IDCardStandard
  id: CentcomIDCard
  name: command officer ID card
  components:
  - type: Sprite
    layers:
    - state: centcom
    - state: stripe_top
      color: &color-centcomm-top "#134975"
    - state: stripe_bottom
      color: &color-centcomm-bottom "#0d304d"
    - sprite: *icon-rsi
      offset: *icon-offset
      state: Nanotrasen
  - type: Item
    heldPrefix: blue
  - type: PresetIdCard
    job: CentralCommandOfficial

- type: entity
  parent: IDCardStandard
  id: ERTLeaderIDCard
  name: ERT leader ID card
  components:
  - type: Sprite
    layers:
    - state: gold
    - state: stripe_top
      color: *color-centcomm-top
    - state: stripe_bottom
      color: *color-centcomm-bottom
    - sprite: *icon-rsi
      offset: *icon-offset
      state: ERTLeader
  - type: Item
    heldPrefix: gold
  - type: PresetIdCard
    job: ERTLeader

- type: entity
  parent: IDCardStandard
  id: ERTChaplainIDCard
  name: ERT chaplain ID card
  components:
  - type: Sprite
    layers:
    - state: centcom
    - state: stripe_top
      color: *color-service-top
    - state: stripe_bottom
      color: *color-service-bottom
    - sprite: *icon-rsi
      offset: *icon-offset
      state: ERTChaplain
  - type: Item
    heldPrefix: blue
  - type: PresetIdCard
    job: ERTChaplain

- type: entity
  parent: IDCardStandard
  id: ERTEngineerIDCard
  name: ERT engineer ID card
  components:
  - type: Sprite
    layers:
    - state: centcom
    - state: stripe_top
      color: *color-engineering-top
    - state: stripe_bottom
      color: *color-engineering-bottom
    - sprite: *icon-rsi
      offset: *icon-offset
      state: ERTEngineer
  - type: Item
    heldPrefix: blue
  - type: PresetIdCard
    job: ERTEngineer

- type: entity
  parent: IDCardStandard
  id: ERTJanitorIDCard
  name: ERT janitor ID card
  components:
  - type: Sprite
    layers:
    - state: centcom
    - state: stripe_top
      color: *color-service-top
    - state: stripe_bottom
      color: *color-service-bottom
    - sprite: *icon-rsi
      offset: *icon-offset
      state: ERTJanitor
  - type: Item
    heldPrefix: blue
  - type: PresetIdCard
    job: ERTJanitor

- type: entity
  parent: IDCardStandard
  id: ERTMedicIDCard
  name: ERT medic ID card
  components:
  - type: Sprite
    layers:
    - state: centcom
    - state: stripe_top
      color: *color-medical-top
    - state: stripe_bottom
      color: *color-medical-bottom
    - sprite: *icon-rsi
      offset: *icon-offset
      state: ERTMedical
  - type: Item
    heldPrefix: blue
  - type: PresetIdCard
    job: ERTMedical

- type: entity
  parent: IDCardStandard
  id: ERTSecurityIDCard
  name: ERT security ID card
  components:
  - type: Sprite
    layers:
    - state: centcom
    - state: stripe_top
      color: *color-security-top
    - state: stripe_bottom
      color: *color-security-bottom
    - sprite: *icon-rsi
      offset: *icon-offset
      state: ERTSecurity
  - type: Item
    heldPrefix: blue
  - type: PresetIdCard
    job: ERTSecurity

- type: entity
  parent: IDCardStandard
  id: CentcomIDCardDeathsquad
  name: death squad ID card
  components:
  - type: Sprite
    layers:
    - state: centcom
    - state: stripe_top
      color: *color-centcomm-top
    - state: stripe_bottom
      color: *color-centcomm-bottom
    - sprite: *icon-rsi
      offset: *icon-offset
      state: DeathSquad
  - type: PresetIdCard
    job: DeathSquad

- type: entity
  parent: IDCardStandard
  id: CBURNIDcard
  name: CBURN ID card
  suffix: CBURN
  components:
  - type: Sprite
    layers:
    - state: centcom
    - state: stripe_top
      color: *color-centcomm-top
    - state: stripe_bottom
      color: *color-centcomm-bottom
    - sprite: *icon-rsi
      offset: *icon-offset
      state: CBURN
  - type: Item
    heldPrefix: blue
  - type: PresetIdCard
    job: CBURN

- 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
    - sprite: *icon-rsi
      offset: *icon-offset
      state: Admin
  - 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
  - type: Tag #  Ignore Chameleon tags
    tags:
    - DoorBumpOpener
  - type: AgentIDCard
    iconGroups:
    - CommandIconGroup
    - SecurityIconGroup
    - ResearchIconGroup
    - CargoIconGroup
    - EngineeringIconGroup
    - MedicalIconGroup
    - ServiceIconGroup
    - CivilianIconGroup
    - EntertainerIconGroup
    - SiliconIconGroup
    - BlankIconGroup
    - ThreatIconGroup
    - CentCommIconGroup
    - AdminIconGroup
  - type: ActivatableUI
    key: enum.AgentIDCardUiKey.Key
    verbText: agent-id-open-ui-verb
  - type: UserInterface
    interfaces:
      enum.AgentIDCardUiKey.Key:
        type: AgentIDCardBoundUserInterface
