- type: entity
  name: fire extinguisher
  parent: BaseItem
  id: FireExtinguisher
  description: It extinguishes fires.
  components:
  - type: Sprite
    sprite: _NF/Objects/Misc/fire_extinguisher.rsi # Frontier
    layers:
    - state: fire_extinguisher_closed
      map: [ "enum.ToggleVisuals.Layer" ]
  - type: Item
    sprite: _NF/Objects/Misc/fire_extinguisher.rsi # Frontier
    size: Normal
  - type: SolutionContainerManager
    solutions:
      spray:
        maxVol: 100
        reagents:
        - ReagentId: Water
          Quantity: 100
  - type: RefillableSolution
    solution: spray
  - type: DrainableSolution
    solution: spray
  - type: SolutionTransfer
    maxTransferAmount: 100
    transferAmount: 100
  - type: UseDelay
  - type: Spray
    transferAmount: 10
    pushbackAmount: 60
    spraySound:
      path: /Audio/Effects/extinguish.ogg
    sprayedPrototype: ExtinguisherSpray
    vaporAmount: 3
    vaporSpread: 90
    sprayVelocity: 2.0
  - type: ItemToggle
    soundActivate:
      path: /Audio/Machines/button.ogg
      params:
        variation: 0.125
        volume: -4
    soundDeactivate:
      path: /Audio/Machines/button.ogg
      params:
        variation: 0.125
        volume: -4
    verbToggleOn: fire-extinguisher-component-verb-remove
    verbToggleOff: fire-extinguisher-component-verb-engage
  - type: SpraySafety
  - type: MeleeWeapon
    wideAnimationRotation: 180
    damage:
      types:
        Blunt: 10
    soundHit:
      path: /Audio/Weapons/smash.ogg
  - type: Tool
    qualities:
    - Rolling
    speedModifier: 0.5 # its very big, awkward to use
  - type: Appearance
  - type: Tag
    tags:
      - FireExtinguisher
  - type: GenericVisualizer
    visuals:
      enum.ToggleVisuals.Toggled:
        enum.ToggleVisuals.Layer:
          True: { state: fire_extinguisher_open }
          False: { state: fire_extinguisher_closed }
  - type: PhysicalComposition
    materialComposition:
      Steel: 100
  - type: PirateBountyItem # Frontier
    id: FireExtinguisher # Frontier

- type: entity
  name: extinguisher spray
  id: ExtinguisherSpray
  parent: Vapor
  categories: [ HideSpawnMenu ]
  components:
  - type: Sprite
    sprite: Effects/extinguisherSpray.rsi
    layers:
      - state: extinguish
        map: [ "enum.VaporVisualLayers.Base" ]
  - type: Physics
    bodyType: Dynamic
  - type: Appearance
  - type: VaporVisuals
    animationTime: 0.8
    animationState: extinguish

- type: entity
  name: pocket fire extinguisher
  parent: FireExtinguisher
  id: FireExtinguisherMini
  description: A light and compact fibreglass-framed model fire extinguisher. It holds less water than its bigger brother.
  components:
  - type: Sprite
    sprite: Objects/Misc/fire_extinguisher_mini.rsi
    layers:
        - state: fire_extinguisher_closed
          map: [ "enabled" ]
  - type: Item
    sprite: Objects/Misc/fire_extinguisher_mini.rsi
    size: Small
  - type: SolutionContainerManager
    solutions:
      spray:
        maxVol: 30
        reagents:
        - ReagentId: Water
          Quantity: 30
  - type: MeleeWeapon
    wideAnimationRotation: 180
    damage:
      types:
        Blunt: 3 #completely ineffective; your fists are better
    soundHit:
      path: /Audio/Effects/weak_hit1.ogg
  - type: PhysicalComposition
    materialComposition:
      Steel: 50
      Glass: 40
