- type: entity
  name: hypospray
  parent: BaseItem
  description: The base, unrestricted hypospray. Designed by top Nanotrasen researchers, it features a large chemical storage, along with a next-to-zero injection delay. It has a warning on its side reading "FOR MEDICAL USE ONLY.".
  id: Hypospray
  components:
  - type: Sprite
    sprite: Objects/Specific/Medical/hypospray.rsi
    state: hypo
  - type: Item
    sprite: Objects/Specific/Medical/hypospray.rsi
  - type: SolutionContainerManager
    solutions:
      hypospray:
        maxVol: 30
  - type: RefillableSolution
    solution: hypospray
  - type: ExaminableSolution
    solution: hypospray
  - type: Hypospray
    onlyAffectsMobs: false
  - type: UseDelay
    delay: 0.5
  - type: StaticPrice
    price: 1000
    vendPrice: 20000
  - type: StealTarget
    stealGroup: Hypospray

- type: entity
  name: gorlex hypospray
  parent: BaseItem
  description: Using reverse engineered designs from NT, Cybersun produced these in limited quantities for Gorlex Marauder operatives.
  id: SyndiHypo
  components:
  - type: Sprite
    sprite: Objects/Specific/Medical/syndihypo.rsi
    state: hypo
  - type: Item
    sprite: Objects/Specific/Medical/syndihypo.rsi
  - type: SolutionContainerManager
    solutions:
      hypospray:
        maxVol: 20
  - type: RefillableSolution
    solution: hypospray
  - type: ExaminableSolution
    solution: hypospray
  - type: Hypospray
    onlyAffectsMobs: false
  - type: UseDelay
    delay: 0.5

- type: entity
  name: borghypo
  parent: BaseItem
  description: A sterile injector for rapid administration of drugs to patients. A cheaper and more specialised version for medical borgs.
  id: BorgHypo
  components:
  - type: Sprite
    sprite: Objects/Specific/Medical/hypospray.rsi
    state: borghypo
  - type: Item
    sprite: Objects/Specific/Medical/hypospray.rsi
  - type: SolutionContainerManager
    solutions:
      hypospray:
        maxVol: 10
  - type: RefillableSolution
    solution: hypospray
  - type: ExaminableSolution
    solution: hypospray
  - type: Hypospray
    onlyAffectsMobs: false
  - type: UseDelay
    delay: 0.5

- type: entity
  name: experimental hypospray
  suffix: Admeme
  parent: SyndiHypo
  description: The ultimate application of bluespace technology and rapid chemical administration.
  id: AdminHypo
  components:
    - type: SolutionContainerManager
      solutions:
        hypospray:
          maxVol: 3000
    - type: UseDelay
      delay: 0.0

- type: entity
  name: chemical medipen
  parent: BaseItem
  description: A sterile injector for rapid administration of drugs to patients. This one can't be refilled.
  id: ChemicalMedipen
  components:
  - type: Sprite
    sprite: Objects/Specific/Medical/medipen.rsi
    layers:
    - state: firstaid
      map: ["enum.SolutionContainerLayers.Fill"]
  - type: Item
    sprite: Objects/Specific/Medical/medipen.rsi
    size: Tiny
  - type: SolutionContainerManager
    solutions:
      pen:
        maxVol: 15
  - type: ExaminableSolution
    solution: pen
  - type: Hypospray
    solutionName: pen
    transferAmount: 15
    onlyAffectsMobs: false
    injectOnly: true
    preventCombatInjection: true # Frontier
    doAfterTime: 0 # Mono
  - type: Appearance
  - type: SolutionContainerVisuals
    maxFillLevels: 1
    changeColor: false
    emptySpriteName: firstaid_empty
  - type: Tag
    tags:
    - Trash
  - type: PhysicalComposition
    materialComposition:
      Plastic: 50
  - type: SpaceGarbage
  - type: StaticPrice
    price: 35 # These are limited supply items.
  - type: TrashOnSolutionEmpty
    solution: pen

- type: entity
  name: emergency medipen
  parent: ChemicalMedipen
  id: EmergencyMedipen
  description: A rapid and safe way to stabilize patients in critical condition for personnel without advanced medical knowledge. Beware, as it's easy to overdose on epinephrine and tranexamic acid.
  components:
  - type: Sprite
    sprite: Objects/Specific/Medical/medipen.rsi
    layers:
    - state: medipen
      map: ["enum.SolutionContainerLayers.Fill"]
  - type: SolutionContainerVisuals
    maxFillLevels: 1
    changeColor: false
    emptySpriteName: medipen_empty
  - type: SolutionContainerManager
    solutions:
      pen:
        maxVol: 15
        reagents:
        - ReagentId: Epinephrine
          Quantity: 12
        - ReagentId: TranexamicAcid
          Quantity: 3
  - type: Tag # Mono
    tags: [SurvivalBox]

- type: entity
  name: poison auto-injector
  parent: ChemicalMedipen
  id: AntiPoisonMedipen
  description: A rapid dose of anti-poison. Contains ultravasculine and epinephrine.
  components:
  - type: Sprite
    sprite: Objects/Specific/Medical/medipen.rsi
    layers:
    - state: penacid
      map: ["enum.SolutionContainerLayers.Fill"]
  - type: SolutionContainerVisuals
    maxFillLevels: 1
    changeColor: false
    emptySpriteName: penacid_empty
  - type: SolutionContainerManager
    solutions:
      pen:
        maxVol: 15
        reagents:
        - ReagentId: Ultravasculine
          Quantity: 10
        - ReagentId: Epinephrine
          Quantity: 5
  - type: Tag
    tags: []

- type: entity
  name: brute auto-injector
  parent: ChemicalMedipen
  id: BruteAutoInjector
  description: A rapid dose of bicaridine and tranexamic acid, intended for combat applications.
  components:
  - type: Sprite
    sprite: Objects/Specific/Medical/medipen.rsi
    layers:
    - state: bicpen
      map: ["enum.SolutionContainerLayers.Fill"]
  - type: SolutionContainerVisuals
    maxFillLevels: 1
    changeColor: false
    emptySpriteName: bicpen_empty
  - type: Hypospray
    solutionName: pen
    transferAmount: 20
    onlyAffectsMobs: false
    injectOnly: true
  - type: SolutionContainerManager
    solutions:
      pen:
        maxVol: 20
        reagents:
        - ReagentId: Bicaridine
          Quantity: 15
        - ReagentId: TranexamicAcid
          Quantity: 5
  - type: Tag
    tags: []

- type: entity
  name: burn auto-injector
  parent: ChemicalMedipen
  id: BurnAutoInjector
  description: A rapid dose of dermaline and leporazine, intended for combat applications.
  components:
  - type: Sprite
    sprite: Objects/Specific/Medical/medipen.rsi
    layers:
    - state: dermpen
      map: ["enum.SolutionContainerLayers.Fill"]
  - type: SolutionContainerVisuals
    maxFillLevels: 1
    changeColor: false
    emptySpriteName: dermpen_empty
  - type: Hypospray
    solutionName: pen
    transferAmount: 20
    onlyAffectsMobs: false
    injectOnly: true
  - type: SolutionContainerManager
    solutions:
      pen:
        maxVol: 20
        reagents:
        - ReagentId: Dermaline
          Quantity: 10
        - ReagentId: Leporazine
          Quantity: 10
  - type: Tag
    tags: []

- type: entity
  name: rad auto-injector
  parent: ChemicalMedipen
  id: RadAutoInjector
  description: A rapid dose of anti-radiation. Contains arithrazine and bicaridine.
  components:
  - type: Sprite
    sprite: Objects/Specific/Medical/medipen.rsi
    layers:
    - state: arithpen
      map: ["enum.SolutionContainerLayers.Fill"]
  - type: SolutionContainerVisuals
    maxFillLevels: 1
    changeColor: false
    emptySpriteName: arithpen_empty
  - type: Hypospray
    solutionName: pen
    transferAmount: 20
    onlyAffectsMobs: false
    injectOnly: true
  - type: SolutionContainerManager
    solutions:
      pen:
        maxVol: 20
        reagents:
        - ReagentId: Arithrazine
          Quantity: 15
        - ReagentId: Bicaridine
          Quantity: 5
  - type: Tag
    tags: []

- type: entity
  name: puncturase auto-injector
  parent: ChemicalMedipen
  id: PunctAutoInjector
  description: A rapid dose of puncturase and tranexamic acid, intended for combat applications.
  components:
  - type: Sprite
    sprite: Objects/Specific/Medical/medipen.rsi
    layers:
    - state: punctpen
      map: ["enum.SolutionContainerLayers.Fill"]
  - type: SolutionContainerVisuals
    maxFillLevels: 1
    changeColor: false
    emptySpriteName: punctpen_empty
  - type: Hypospray
    solutionName: pen
    transferAmount: 15
    onlyAffectsMobs: false
    injectOnly: true
  - type: SolutionContainerManager
    solutions:
      pen:
        maxVol: 15
        reagents:
        - ReagentId: Puncturase
          Quantity: 10
        - ReagentId: TranexamicAcid
          Quantity: 5
  - type: Tag
    tags: []

- type: entity
  name: pyrazine auto-injector
  parent: ChemicalMedipen
  id: PyraAutoInjector
  description: A rapid dose of pyrazine and dermaline, intended for combat applications.
  components:
  - type: Sprite
    sprite: Objects/Specific/Medical/medipen.rsi
    layers:
    - state: pyrapen
      map: ["enum.SolutionContainerLayers.Fill"]
  - type: SolutionContainerVisuals
    maxFillLevels: 1
    changeColor: false
    emptySpriteName: pyrapen_empty
  - type: Hypospray
    solutionName: pen
    transferAmount: 20
    onlyAffectsMobs: false
    injectOnly: true
  - type: SolutionContainerManager
    solutions:
      pen:
        maxVol: 20
        reagents:
        - ReagentId: Pyrazine
          Quantity: 10
        - ReagentId: Dermaline
          Quantity: 10
  - type: Tag
    tags: []

- type: entity
  name: airloss auto-injector
  parent: ChemicalMedipen
  id: AirlossAutoInjector
  description: A rapid dose of saline and dexalin plus, intended to get someone up quickly.
  components:
  - type: Sprite
    sprite: Objects/Specific/Medical/medipen.rsi
    layers:
    - state: dexpen
      map: ["enum.SolutionContainerLayers.Fill"]
  - type: SolutionContainerVisuals
    maxFillLevels: 1
    changeColor: false
    emptySpriteName: dexpen_empty
  - type: Hypospray
    solutionName: pen
    transferAmount: 40
    onlyAffectsMobs: false
    injectOnly: true
  - type: SolutionContainerManager
    solutions:
      pen:
        maxVol: 40
        reagents:
        - ReagentId: Saline
          Quantity: 20
        - ReagentId: DexalinPlus
          Quantity: 20
  - type: Tag
    tags: []

- type: entity
  name: space medipen
  parent: ChemicalMedipen
  id: SpaceMedipen
  description: Contains a mix of chemicals that protect you from the deadly effects of space.
  components:
  - type: Sprite
    sprite: Objects/Specific/Medical/medipen.rsi
    layers:
    - state: hypovolemic
      map: [ "enum.SolutionContainerLayers.Fill" ]
  - type: Appearance
  - type: SolutionContainerVisuals
    maxFillLevels: 1
    changeColor: false
    emptySpriteName: hypovolemic_empty
  - type: Hypospray
    solutionName: pen
    transferAmount: 30
    onlyAffectsMobs: false
    injectOnly: true
  - type: SolutionContainerManager
    solutions:
      pen:
        maxVol: 30
        reagents:
          - ReagentId: Leporazine
            Quantity: 10
          - ReagentId: Barozine
            Quantity: 20
  - type: Tag # Mono
    tags: [SurvivalBox]

- type: entity
  name: hyperzine injector
  parent: ChemicalMedipen
  id: Stimpack
  description: Contains enough hyperzine for you to have the chemical's effect for 30 seconds. Use it when you're sure you're ready to throw down.
  components:
  - type: Sprite
    sprite: Objects/Specific/Medical/medipen.rsi
    layers:
    - state: stimpen
      map: ["enum.SolutionContainerLayers.Fill"]
  - type: SolutionContainerManager
    solutions:
      pen:
        maxVol: 30
        reagents:
        - ReagentId: Stimulants
          Quantity: 30
  - type: SolutionContainerVisuals
    maxFillLevels: 1
    changeColor: false
    emptySpriteName: stimpen_empty
  - type: Hypospray
    solutionName: pen
    transferAmount: 30
    onlyAffectsMobs: false
    injectOnly: true
  - type: StaticPrice
    price: 500
  - type: Tag
    tags: []

- type: entity
  name: hyperzine microinjector
  parent: ChemicalMedipen
  id: StimpackMini
  description: A microinjector of hyperzine that give you about 15 seconds of the chemical's effects.
  components:
  - type: Sprite
    sprite: Objects/Specific/Medical/medipen.rsi
    layers:
    - state: microstimpen
      map: ["enum.SolutionContainerLayers.Fill"]
  - type: SolutionContainerManager
    solutions:
      pen:
        maxVol: 15
        reagents:
        - ReagentId: Stimulants
          Quantity: 15
  - type: SolutionContainerVisuals
    maxFillLevels: 1
    changeColor: false
    emptySpriteName: microstimpen_empty
  - type: StaticPrice
    price: 100
  - type: Tag
    tags: []

- type: entity
  name: combat medipen
  parent: [ChemicalMedipen]
  id: CombatMedipen
  description: A single-use medipen containing chemicals that regenerate most types of damage.
  components:
  - type: Sprite
    sprite: Objects/Specific/Medical/medipen.rsi
    layers:
    - state: morphen
      map: ["enum.SolutionContainerLayers.Fill"]
  - type: SolutionContainerVisuals
    maxFillLevels: 1
    changeColor: false
    emptySpriteName: morphen_empty
  - type: SolutionContainerManager
    solutions:
      pen:
        maxVol: 30
        reagents:
        - ReagentId: Omnizine
          Quantity: 25
        - ReagentId: TranexamicAcid
          Quantity: 5
  - type: Hypospray
    solutionName: pen
    transferAmount: 30
    onlyAffectsMobs: false
    injectOnly: true
  - type: StaticPrice
    price: 500
  - type: Tag
    tags: []

- type: entity
  name: pen
  suffix: Hypopen
  parent: Pen # It is just like normal pen, isn't it?
  description: A dark ink pen.
  id: Hypopen
  components:
  - type: SolutionContainerManager
    solutions:
      hypospray:
        maxVol: 10
  - type: RefillableSolution
    solution: hypospray
  - type: ExaminableSolution
    solution: hypospray
    heldOnly: true # Allow examination only when held in hand.
  - type: Hypospray
    onlyAffectsMobs: false
  - type: UseDelay
    delay: 0.5
  - type: StaticPrice # A new shitcurity meta
    price: 75
  - type: EmitSoundOnUse
    handle: false # don't want the sound to stop the self-inject from triggering

- type: entity
  parent: BaseItem
  id: HypopenBox
  name: hypopen box
  description: A small box containing a hypopen. Packaging disintegrates when opened, leaving no evidence behind.
  components:
  - type: Item
    size: Tiny
  - type: Sprite
    sprite: Objects/Storage/penbox.rsi
    state: hypopen
  - type: SpawnItemsOnUse
    items:
    - id: Hypopen
    sound:
      path: /Audio/Effects/unwrap.ogg

- type: entity
  name: weh auto-injector
  parent: ChemicalMedipen
  id: WehMedipen
  description: A rapid dose of Weh. Contains juice that makes you Weh.
  components:
  - type: Sprite
    sprite: Objects/Specific/Medical/medipen.rsi
    layers:
    - state: medipen
      map: [ "enum.SolutionContainerLayers.Fill" ]
  - type: SolutionContainerVisuals
    maxFillLevels: 1
    changeColor: false
    emptySpriteName: medipen_empty
  - type: SolutionContainerManager
    solutions:
      pen:
        maxVol: 60
        reagents:
        - ReagentId: JuiceThatMakesYouWeh
          Quantity: 60
  - type: Hypospray
    solutionName: pen
    transferAmount: 1
    onlyAffectsMobs: false
    injectOnly: true
  - type: Tag
    tags: []
