- type: entity
  name: hypospray
  parent: BaseItem # Frontier: remove BaseGrandTheftContraband
  description: A sterile injector for rapid administration of drugs to patients.
  id: Hypospray
  components:
  - type: Sprite
    sprite: Objects/Specific/Medical/hypospray.rsi
    layers:
      - state: hypo
        map: ["enum.SolutionContainerLayers.Base"]
      - state: hypo_fill1
        map: ["enum.SolutionContainerLayers.Fill"]
        visible: false
  - 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: 750
  - type: Tag
    tags:
    - HighRiskItem
  - type: StealTarget
    stealGroup: Hypospray
  - type: Appearance
  - type: SolutionContainerVisuals
    maxFillLevels: 6
    fillBaseName: hypo_fill
    solutionName: hypospray

- type: entity
  name: gorlex hypospray
  parent: [BaseItem, BaseC3SyndicateContraband] # Frontier: add BaseC3SyndicateContraband
  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
    layers:
      - state: hypo
        map: ["enum.SolutionContainerLayers.Base"]
      - state: hypo_fill1
        map: ["enum.SolutionContainerLayers.Fill"]
        visible: false
  - 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: Appearance
  - type: SolutionContainerVisuals
    maxFillLevels: 4
    fillBaseName: hypo_fill
    solutionName: hypospray

- 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:
  # Frontier: fillable sprite
  - type: Sprite
    sprite: _NF/Objects/Specific/Medical/borghypo.rsi
    layers:
    - state: borghypo
      map: [ enum.SolutionContainerLayers.Base ]
    - state: fill-1
      visible: false
      map: [ enum.SolutionContainerLayers.Fill ]
  - type: Appearance
  - type: SolutionContainerVisuals
    maxFillLevels: 7
    fillBaseName: fill-
  # End Frontier: fillable sprite
  - 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: [BaseClearContraband, SyndiHypo] # Frontier: added BaseClearContraband
  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: GoblinPreciousTrash # Frontier
  - type: Sprite
    sprite: Objects/Specific/Medical/medipen.rsi
    layers:
    - state: firstaid
      map: ["enum.SolutionContainerLayers.Fill"]
  - type: Item
    sprite: Objects/Specific/Medical/medipen.rsi
    inhandVisuals:
      left:
      - state: base-needle-inhand-left
      - state: base-colorA-inhand-left
        color: "#439822"
      - state: base-colorB-inhand-left
      right:
      - state: base-needle-inhand-right
      - state: base-colorA-inhand-right
        color: "#439822"
      - state: base-colorB-inhand-right
    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: 2 # Frontier
  - type: Appearance
  - type: SolutionContainerVisuals
    maxFillLevels: 1
    changeColor: false
    emptySpriteName: firstaid_empty
  - 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: entity
  name: poison auto-injector
  parent: ChemicalMedipen
  id: AntiPoisonMedipen
  description: A rapid dose of anti-poison. Contains ultravasculine and epinephrine.
  components:
  - type: Item
    inhandVisuals:
      left:
      - state: base-needle-inhand-left
      - state: base-colorA-inhand-left
        color: "#573d9e"
      - state: base-colorB-inhand-left
      right:
      - state: base-needle-inhand-right
      - state: base-colorA-inhand-right
        color: "#573d9e"
      - state: base-colorB-inhand-right
  - 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: entity
  name: brute auto-injector
  parent: ChemicalMedipen
  id: BruteAutoInjector
  description: A rapid dose of bicaridine and tranexamic acid, intended for combat applications.
  components:
  - type: Item
    inhandVisuals:
      left:
      - state: base-needle-inhand-left
      - state: base-colorA-inhand-left
        color: "#c73333"
      - state: base-colorB-inhand-left
      right:
      - state: base-needle-inhand-right
      - state: base-colorA-inhand-right
        color: "#c73333"
      - state: base-colorB-inhand-right
  - 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: entity
  name: burn auto-injector
  parent: ChemicalMedipen
  id: BurnAutoInjector
  description: A rapid dose of dermaline and leporazine, intended for combat applications.
  components:
  - type: Item
    inhandVisuals:
      left:
      - state: base-needle-inhand-left
      - state: base-colorA-inhand-left
        color: "#427485"
      - state: base-colorB-inhand-left
      right:
      - state: base-needle-inhand-right
      - state: base-colorA-inhand-right
        color: "#427485"
      - state: base-colorB-inhand-right
  - 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: entity
  name: rad auto-injector
  parent: ChemicalMedipen
  id: RadAutoInjector
  description: A rapid dose of anti-radiation. Contains arithrazine and bicaridine.
  components:
  - type: Item
    inhandVisuals:
      left:
      - state: base-needle-inhand-left
      - state: base-colorA-inhand-left
        color: "#e3832f"
      - state: base-colorB-inhand-left
      right:
      - state: base-needle-inhand-right
      - state: base-colorA-inhand-right
        color: "#e3832f"
      - state: base-colorB-inhand-right
  - 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: entity
  name: puncturase auto-injector
  parent: ChemicalMedipen
  id: PunctAutoInjector
  description: A rapid dose of puncturase and tranexamic acid, intended for combat applications.
  components:
  - type: Item
    inhandVisuals:
      left:
      - state: base-needle-inhand-left
      - state: base-colorA-inhand-left
        color: "#c7be5d"
      - state: base-colorB-inhand-left
      right:
      - state: base-needle-inhand-right
      - state: base-colorA-inhand-right
        color: "#c7be5d"
      - state: base-colorB-inhand-right
  - 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: entity
  name: pyrazine auto-injector
  parent: ChemicalMedipen
  id: PyraAutoInjector
  description: A rapid dose of pyrazine and dermaline, intended for combat applications.
  components:
  - type: Item
    inhandVisuals:
      left:
      - state: base-needle-inhand-left
      - state: base-colorA-inhand-left
        color: "#c7a45d"
      - state: base-colorB-inhand-left
      right:
      - state: base-needle-inhand-right
      - state: base-colorA-inhand-right
        color: "#c7a45d"
      - state: base-colorB-inhand-right
  - 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: 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: Item
    inhandVisuals:
      left:
      - state: base-needle-inhand-left
      - state: base-colorA-inhand-left
        color: "#5d81c7"
      - state: base-colorB-inhand-left
      right:
      - state: base-needle-inhand-right
      - state: base-colorA-inhand-right
        color: "#5d81c7"
      - state: base-colorB-inhand-right
  - 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: 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: Item
    inhandVisuals:
      left:
      - state: base-needle-inhand-left
      - state: base-colorA-inhand-left
        color: "#a84597"
      - state: base-colorB-inhand-left
      right:
      - state: base-needle-inhand-right
      - state: base-colorA-inhand-right
        color: "#a84597"
      - state: base-colorB-inhand-right
  - 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: entity
  name: hyperzine injector
  parent: [ChemicalMedipen, BaseC3SyndicateContraband] # Frontier: BaseSyndicateContraband<BaseC3SyndicateContraband
  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: Item
    inhandVisuals:
      left:
      - state: base-needle-inhand-left
      - state: base-colorA-inhand-left
        color: "#9a040e"
      - state: base-colorB-inhand-left
        color: "#c62933"
      right:
      - state: base-needle-inhand-right
      - state: base-colorA-inhand-right
        color: "#9a040e"
      - state: base-colorB-inhand-right
        color: "#c62933"
  - 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: 1500

- type: entity
  name: hyperzine microinjector
  parent: [ChemicalMedipen, BaseC3SyndicateContraband] # Frontier: BaseSyndicateContraband<BaseC3SyndicateContraband
  id: StimpackMini
  description: A microinjector of hyperzine that give you about 15 seconds of the chemical's effects.
  components:
  - type: Item
    inhandVisuals:
      left:
      - state: base-needle-inhand-left
      - state: base-colorA-inhand-left
        color: "#9a040e"
      - state: base-colorB-inhand-left
        color: "#c62933"
      right:
      - state: base-needle-inhand-right
      - state: base-colorA-inhand-right
        color: "#9a040e"
      - state: base-colorB-inhand-right
        color: "#c62933"
  - 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: 583 # 3500 for 6 as a freaky fraction

- type: entity
  name: combat medipen
  parent: [ChemicalMedipen, BaseC3SyndicateContraband] # Frontier: BaseSyndicateContraband<BaseC3SyndicateContraband
  id: CombatMedipen
  description: A single-use medipen containing chemicals that regenerate most types of damage.
  components:
  - type: Item
    inhandVisuals:
      left:
      - state: base-needle-inhand-left
      - state: base-colorA-inhand-left
        color: "#5bcaca"
      - state: base-colorB-inhand-left
      right:
      - state: base-needle-inhand-right
      - state: base-colorA-inhand-right
        color: "#5bcaca"
      - state: base-colorB-inhand-right
  - 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: 1500

- type: entity
  name: pen
  suffix: Hypopen
  parent: [Pen, BaseC3SyndicateContraband] # 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: Contraband # Frontier
    hideValues: true # Frontier - stealthy

- type: entity
  parent: [ BaseItem, BaseC3SyndicateContraband ] # Frontier: BaseSyndicateContraband<BaseC3SyndicateContraband
  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
