# SPDX-FileCopyrightText: 2019 Swept <49448379+SweptWasTaken@users.noreply.github.com>
# SPDX-FileCopyrightText: 2020 DrSmugleaf <DrSmugleaf@users.noreply.github.com>
# SPDX-FileCopyrightText: 2020 Hugo Laloge <hugo.laloge@gmail.com>
# SPDX-FileCopyrightText: 2020 Moses <StrawberryMoses@gmail.com>
# SPDX-FileCopyrightText: 2020 Paul Ritter <ritter.paul1@googlemail.com>
# SPDX-FileCopyrightText: 2020 SoulSloth <67545203+SoulSloth@users.noreply.github.com>
# SPDX-FileCopyrightText: 2020 Víctor Aguilera Puerto <6766154+Zumorica@users.noreply.github.com>
# SPDX-FileCopyrightText: 2020 Ygg01 <daniel.fath7@gmail.com>
# SPDX-FileCopyrightText: 2020 nuke <47336974+nuke-makes-games@users.noreply.github.com>
# SPDX-FileCopyrightText: 2021 Galactic Chimp <GalacticChimpanzee@gmail.com>
# SPDX-FileCopyrightText: 2021 Metal Gear Sloth <metalgearsloth@gmail.com>
# SPDX-FileCopyrightText: 2021 StStevens <StStevens@users.noreply.github.com>
# SPDX-FileCopyrightText: 2021 Swept <sweptwastaken@protonmail.com>
# SPDX-FileCopyrightText: 2021 Vera Aguilera Puerto <6766154+Zumorica@users.noreply.github.com>
# SPDX-FileCopyrightText: 2021 Vera Aguilera Puerto <zddm@outlook.es>
# SPDX-FileCopyrightText: 2021 Ygg01 <y.laughing.man.y@gmail.com>
# SPDX-FileCopyrightText: 2021 mirrorcult <notzombiedude@gmail.com>
# SPDX-FileCopyrightText: 2021 py01 <60152240+collinlunn@users.noreply.github.com>
# SPDX-FileCopyrightText: 2021 py01 <pyronetics01@gmail.com>
# SPDX-FileCopyrightText: 2022 ModeratelyAware <84935671+ModeratelyAware@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 Vera Aguilera Puerto <gradientvera@outlook.com>
# SPDX-FileCopyrightText: 2022 metalgearsloth <comedian_vs_clown@hotmail.com>
# SPDX-FileCopyrightText: 2022 metalgearsloth <metalgearsloth@gmail.com>
# SPDX-FileCopyrightText: 2022 mirrorcult <lunarautomaton6@gmail.com>
# SPDX-FileCopyrightText: 2023 I.K <45953835+notquitehadouken@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 Slava0135 <40753025+Slava0135@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 TemporalOroboros <TemporalOroboros@gmail.com>
# SPDX-FileCopyrightText: 2023 notquitehadouken <1isthisameme>
# SPDX-FileCopyrightText: 2024 AJCM-git <60196617+AJCM-git@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Aiden <aiden@djkraz.com>
# SPDX-FileCopyrightText: 2024 Alice "Arimah" Heurlin <30327355+arimah@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 BombasterDS <115770678+BombasterDS@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Chief-Engineer <119664036+Chief-Engineer@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 DrSmugleaf <10968691+DrSmugleaf@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Ed <96445749+TheShuEd@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Errant <35878406+Errant-4@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Flareguy <78941145+Flareguy@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Golinth <amh2023@gmail.com>
# SPDX-FileCopyrightText: 2024 HS <81934438+HolySSSS@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 IProduceWidgets <107586145+IProduceWidgets@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Magnus Larsen <i.am.larsenml@gmail.com>
# SPDX-FileCopyrightText: 2024 Mr. 27 <45323883+Dutch-VanDerLinde@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 PJBot <pieterjan.briers+bot@gmail.com>
# SPDX-FileCopyrightText: 2024 Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
# SPDX-FileCopyrightText: 2024 Plykiya <58439124+Plykiya@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Rouge2t7 <81053047+Sarahon@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Tayrtahn <tayrtahn@gmail.com>
# SPDX-FileCopyrightText: 2024 Truoizys <153248924+Truoizys@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 TsjipTsjip <19798667+TsjipTsjip@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Ubaser <134914314+UbaserB@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Vasilis <vasilis@pikachu.systems>
# SPDX-FileCopyrightText: 2024 Verm <32827189+Vermidia@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 beck-thompson <107373427+beck-thompson@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 deltanedas <39013340+deltanedas@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 deltanedas <@deltanedas:kde.org>
# SPDX-FileCopyrightText: 2024 lzk <124214523+lzk228@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 osjarw <62134478+osjarw@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 plykiya <plykiya@protonmail.com>
# SPDX-FileCopyrightText: 2024 Арт <123451459+JustArt1m@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Eagle <lincoln.mcqueen@gmail.com>
# SPDX-FileCopyrightText: 2025 VMSolidus <evilexecutive@gmail.com>
# SPDX-FileCopyrightText: 2025 gus <august.eymann@gmail.com>
# SPDX-FileCopyrightText: 2025 vanx <61917534+Vaaankas@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later

- type: entity
  name: fire extinguisher
  parent: BaseItem
  id: FireExtinguisher
  description: It extinguishes fires.
  components:
  - type: Sprite
    sprite: Objects/Misc/fire_extinguisher.rsi
    layers:
    - state: fire_extinguisher_closed
      map: [ "enum.ToggleableVisuals.Layer" ]
  - type: Item
    sprite: Objects/Misc/fire_extinguisher.rsi
    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
    animationRotation: -90 # WWDP
    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.ToggleableVisuals.Enabled:
        enum.ToggleableVisuals.Layer:
          True: { state: fire_extinguisher_open }
          False: { state: fire_extinguisher_closed }
  - type: PhysicalComposition #Goobstation - Recycle update
    materialComposition:
      Steel: 50

- type: entity
  parent: FireExtinguisher
  id: BorgFireExtinguisher
  name: maneuvering jet
  description: Based on fire extinguisher technology, the maneuvering jet is... well yes, its just a bigger fire extinguisher.
  components:
  - type: SolutionContainerManager
    solutions:
      spray:
        maxVol: 200
        reagents:
        - ReagentId: Water
          Quantity: 200

- 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: SupermatterImmune # GoobStation

- 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 #Goobstation - Recycle update
    materialComposition:
      Steel: 50
      Glass: 40

# used for a engi xenoborg module
- type: entity
  parent: [ FireExtinguisher, BaseXenoborgContraband ]
  id: SelfRechargingFireExtinguisher
  name: self-recharging fire extinguisher
  description: It extinguishes fires. it slowly refills with water.
  components:
  - type: SolutionRegeneration
    solution: spray
    generated:
      reagents:
      - ReagentId: Water
        Quantity: 1
