- type: entity
  name: spray bottle
  id: SprayBottle
  parent: BaseItem
  suffix: Empty
  description: A spray bottle with an unscrewable top.
  components:
  - type: Edible
    edible: Drink
    solution: spray
    destroyOnEmpty: false
    utensil: None
    transferAmount: 10
    useSound:
      path: /Audio/Effects/spray3.ogg
      params:
        variation: 0.2
  - type: Tag
    tags:
    - Spray
    - Trash
  - type: Sprite
    sprite: Objects/Specific/Janitorial/janitorial.rsi
    state: cleaner
  - type: Item
    sprite: Objects/Specific/Janitorial/janitorial.rsi
  - type: SolutionContainerManager
    solutions:
      spray:
        maxVol: 100
  - type: RefillableSolution
    solution: spray
  - type: DrainableSolution
    solution: spray
  - type: SolutionTransfer
    canChangeTransferAmount: true
  - type: SolutionItemStatus
    solution: spray
  - type: UseDelay
  - type: Spray
    transferAmount: 10
    sprayVelocity: 2
    spraySound:
      path: /Audio/Effects/spray2.ogg
  - type: TrashOnSolutionEmpty
    solution: spray
  - type: ExaminableSolution
    solution: spray
    exactVolume: true

- type: entity
  name: mega spray bottle
  id: MegaSprayBottle
  parent: SprayBottle
  suffix: Empty
  description: A huge spray bottle, capable of unrivaled janitorial power.
  components:
  - type: Sprite
    sprite: Objects/Specific/Janitorial/janitorial.rsi
    state: cleaner_large
  - type: SolutionContainerManager
    solutions:
      spray:
        maxVol: 250
  - type: Spray
    transferAmount: 15
    sprayedPrototype: BigVapor
    sprayVelocity: 3
    sprayDistance: 4.5
    spraySound:
      path: /Audio/Effects/spray2.ogg

- type: entity
  name: spray bottle
  id: SprayBottleWater
  suffix: Filled
  parent: SprayBottle
  components:
  - type: Tag
    tags:
    - Spray
  - type: SolutionContainerManager
    solutions:
      spray:
        maxVol: 100
        reagents:
        - ReagentId: Water
          Quantity: 100

- type: entity
  name: space cleaner
  description: BLAM!-brand non-foaming space cleaner!
  id: SprayBottleSpaceCleaner
  parent: SprayBottle
  suffix: ""
  components:
  - type: SolutionContainerManager
    solutions:
      spray:
        maxVol: 100
        reagents:
        - ReagentId: SpaceCleaner
          Quantity: 100
  - type: Tag
    tags:
      - Spray

- type: entity
  parent: SprayBottle
  id: BorgSprayBottle
  name: internal spray jet
  suffix: Filled
  description: A pressurized vessel for spraying reagents, installed directly into a custodial cyborg. Typically filled with space cleaner for dealing with those nasty spills.
  components:
  - type: SolutionContainerManager
    solutions:
      spray:
        maxVol: 200
        reagents:
        - ReagentId: SpaceCleaner
          Quantity: 200

- type: entity
  parent: MegaSprayBottle
  id: BorgMegaSprayBottle
  name: adv. internal spray jet
  suffix: Filled
  description: An upgraded version of the integrated spray bottle, installed directly into a custodial cyborg. Typically filled with space cleaner for dealing with those nasty spills.
  components:
  - type: SolutionContainerManager
    solutions:
      spray:
        maxVol: 500
        reagents:
        - ReagentId: SpaceCleaner
          Quantity: 500

# Vapor
- type: entity
  id: Vapor
  name: "vapor"
  categories: [ HideSpawnMenu ]
  components:
  - type: SolutionContainerManager
    solutions:
      vapor:
        maxVol: 50
  - type: Vapor
    active: true
    transferAmountPercentage: 0.5
  - type: AnimationPlayer
  - type: Sprite
    sprite: Effects/chempuff.rsi
    rotation: 180
    layers:
    - state: chempuff
      map: ["enum.VaporVisualLayers.Base"]
  - type: Physics
    bodyType: Dynamic
  - type: Fixtures
    fixtures:
      fix1:
        shape:
          !type:PhysShapeAabb
          bounds: "-0.25,-0.25,0.25,0.25"
        hard: false
        mask:
        - FullTileMask
        - Opaque
        layer:
        - ItemMask
  - type: Appearance
  - type: VaporVisuals

- type: entity
  id: BigVapor
  parent: Vapor
  categories: [ HideSpawnMenu ]
  components:
  - type: Sprite
    sprite: Effects/chempuff.rsi
    rotation: 180
    layers:
    - state: chempuff
      scale: 2, 2
      map: ["enum.VaporVisualLayers.Base"]
  - type: Fixtures
    fixtures:
      fix1:
        shape:
          !type:PhysShapeAabb
          bounds: "-0.6,-0.6,0.6,0.6"
        hard: false
        mask:
        - FullTileMask
        - Opaque

- type: entity
  parent: Vapor
  id: FlowerVapor
  categories: [ HideSpawnMenu ]
  components:
  - type: Sprite
    sprite: Effects/extinguisherSpray.rsi
    layers:
    - state: extinguish
      map: [ "enum.VaporVisualLayers.Base" ]
  - type: VaporVisuals
    animationTime: 0.8
    animationState: extinguish
