- type: entity
  abstract: true
  parent: BaseItem
  id: GasTankBase
  components:
  - type: Sprite
    sprite: Objects/Tanks/generic.rsi
    layers:
    - state: icon
    - state: integrity-unshaded-0
      map: [ "enum.MaxPressureVisualLayers.BaseUnshaded" ]
      shader: unshaded
      visible: false
    - state: mask
      map: [ "enum.MaxPressureVisualLayers.Base" ]
      visible: false
  - type: Appearance
  - type: MaxPressureVisuals
  - type: Item
    size: Normal
    sprite: Objects/Tanks/generic.rsi
  - type: Clothing
    quickEquip: false
    sprite: Objects/Tanks/generic.rsi
    slots:
    - Back
    - suitStorage
  - type: UseDelay
    delays:
      gasTank:
        length: 1.0
  - type: ActivatableUI
    key: enum.SharedGasTankUiKey.Key
  - type: UserInterface
    interfaces:
      enum.SharedGasTankUiKey.Key:
        type: GasTankBoundUserInterface
  - type: AtmosDevice
    requireAnchored: false
    joinSystem: true
  - type: GasTank
    releasePressure: 21.3
    air:
      # If gas tank volume is changed, adjust MinimumTritiumOxyburnEnergy in Atmospherics.cs by the same proportions
      volume: 5
      temperature: 293.15
    tankLowPressure: 30.0
  - type: Explosive
    explosionType: Minibomb # Mostly a pressure wave explosive so primarily blunt damage
    maxIntensity: 20
    tileBreakScale: 0.2
  - type: MeleeWeapon
    wideAnimationRotation: 45
    attackRate: 0.8
    damage:
      types:
        Blunt: 10
  - type: PhysicalComposition
    materialComposition:
      Steel: 185
  - type: StaticPrice
    price: 30

- type: entity
  abstract: true
  parent: GasTankBase
  id: GasTankRoundBase
  components:
  - type: Tool
    qualities:
    - Rolling
    speedModifier: 0.6 # fairly unwieldly but nice round surface

- type: entity
  parent: GasTankRoundBase
  id: OxygenTank
  name: oxygen tank
  description: A standard cylindrical gas tank for oxygen. It can hold 5 L of gas.
  components:
  - type: Sprite
    sprite: Objects/Tanks/oxygen.rsi
  - type: Item
    sprite: Objects/Tanks/oxygen.rsi
  - type: Clothing
    sprite: Objects/Tanks/oxygen.rsi

- type: entity
  parent: GasTankRoundBase
  id: NitrogenTank
  name: nitrogen tank
  description: A standard cylindrical gas tank for nitrogen. It can hold 5 L of gas.
  components:
  - type: Sprite
    sprite: Objects/Tanks/red.rsi
  - type: Item
    sprite: Objects/Tanks/red.rsi
  - type: Clothing
    sprite: Objects/Tanks/red.rsi

- type: entity
  parent: GasTankRoundBase
  id: EmergencyOxygenTank
  name: emergency oxygen tank
  description: An easily portable tank for emergencies. Contains very little oxygen, rated for survival use only. It can hold 0.66 L of gas.
  components:
  - type: Sprite
    sprite: Objects/Tanks/emergency.rsi
  - type: Item
    size: Small
    sprite: Objects/Tanks/emergency.rsi
    storedSprite:
      state: storage
      sprite: Objects/Tanks/emergency.rsi
  - type: GasTank
    overpressure: 1519.875 # Poorly manufactured, they also lose pressure quickly so this makes exploding them easier, at the cost of the explosion being smaller.
    air:
      volume: 0.66
      temperature: 293.15
  - type: Clothing
    sprite: Objects/Tanks/emergency.rsi
    slots:
    - Pocket
    - Belt
    - suitStorage
  - type: MeleeWeapon
    damage:
      types:
        Blunt: 5
  - type: PhysicalComposition
    materialComposition:
      Steel: 100

- type: entity
  parent: EmergencyOxygenTank
  id: EmergencyNitrogenTank
  name: emergency nitrogen tank
  description: An easily portable tank for emergencies. Contains very little nitrogen, rated for survival use only. It can hold 0.66 L of gas.
  components:
  - type: Sprite
    sprite: Objects/Tanks/emergency_red.rsi
  - type: Item
    sprite: Objects/Tanks/emergency_red.rsi
    storedSprite:
      state: storage
      sprite: Objects/Tanks/emergency_red.rsi
  - type: Clothing
    sprite: Objects/Tanks/emergency_red.rsi

- type: entity
  parent: EmergencyOxygenTank
  id: ExtendedEmergencyOxygenTank
  name: extended-capacity emergency oxygen tank
  description: An emergency tank with extended capacity. Technically rated for prolonged use. It can hold 1.5 L of gas.
  components:
  - type: Sprite
    sprite: Objects/Tanks/emergency_extended.rsi
  - type: Item
    sprite: Objects/Tanks/emergency_extended.rsi
    storedSprite:
      state: storage
      sprite: Objects/Tanks/emergency_extended.rsi
  - type: GasTank
    air:
      volume: 1.5
      temperature: 293.15
  - type: Clothing
    sprite: Objects/Tanks/emergency_extended.rsi

- type: entity
  parent: ExtendedEmergencyOxygenTank
  id: ExtendedEmergencyNitrogenTank
  name: extended-capacity emergency nitrogen tank
  description: An emergency tank with extended capacity. Technically rated for prolonged use. It can hold 1.5 L of gas.
  components:
  - type: Sprite
    sprite: Objects/Tanks/emergency_extended_red.rsi
  - type: Item
    sprite: Objects/Tanks/emergency_extended_red.rsi
    storedSprite:
      state: storage
      sprite: Objects/Tanks/emergency_extended_red.rsi
  - type: Clothing
    sprite: Objects/Tanks/emergency_extended_red.rsi

- type: entity
  parent: ExtendedEmergencyOxygenTank
  id: DoubleEmergencyOxygenTank
  name: double emergency oxygen tank
  description: A high-grade dual-tank emergency life support container. It holds a decent amount of oxygen for its small size. It can hold 2.5 L of gas.
  components:
  - type: Sprite
    sprite: Objects/Tanks/emergency_double.rsi
  - type: Item
    sprite: Objects/Tanks/emergency_double.rsi
    storedSprite:
      state: storage
      sprite: Objects/Tanks/emergency_double.rsi
  - type: GasTank
    air:
      volume: 2.5
      temperature: 293.15
  - type: Clothing
    sprite: Objects/Tanks/emergency_double.rsi
  - type: MeleeWeapon
    attackRate: 0.9
    damage:
      types:
        Blunt: 7.5

- type: entity
  parent: DoubleEmergencyOxygenTank
  id: DoubleEmergencyNitrogenTank
  name: double emergency nitrogen tank
  description: A high-grade dual-tank emergency life support container. It holds a decent amount of nitrogen for its small size. It can hold 2.5 L of gas.
  components:
  - type: Sprite
    sprite: Objects/Tanks/emergency_double_red.rsi
  - type: Item
    sprite: Objects/Tanks/emergency_double_red.rsi
    storedSprite:
      state: storage
      sprite: Objects/Tanks/emergency_double_red.rsi
  - type: Clothing
    sprite: Objects/Tanks/emergency_double_red.rsi

- type: entity
  parent: EmergencyOxygenTank
  id: EmergencyFunnyOxygenTank
  name: funny emergency oxygen tank
  description: An easily portable tank for emergencies. Contains very little oxygen with an extra of funny gas, rated for survival use only. It can hold 0.66 L of gas.
  components:
  - type: Sprite
    sprite: Objects/Tanks/emergency_clown.rsi
  - type: Item
    sprite: Objects/Tanks/emergency_clown.rsi
    storedSprite:
      state: storage
      sprite: Objects/Tanks/emergency_clown.rsi
  - type: Clothing
    sprite: Objects/Tanks/emergency_clown.rsi

- type: entity
  parent: GasTankRoundBase
  id: AirTank
  name: air tank
  description: Mixed anyone? It can hold 5 L of gas.
  components:
  - type: GasTank
    releasePressure: 101.3

- type: entity
  parent: GasTankRoundBase
  id: NitrousOxideTank
  name: nitrous oxide tank
  description: Contains a mixture of air and nitrous oxide. Make sure you don't refill it with pure N2O. It can hold 5 L of gas.
  components:
  - type: Sprite
    sprite: Objects/Tanks/anesthetic.rsi
  - type: Item
    sprite: Objects/Tanks/anesthetic.rsi
  - type: GasTank
    releasePressure: 30.4
  - type: Clothing
    sprite: Objects/Tanks/anesthetic.rsi

- type: entity
  # it's a square so no rolling dough
  parent: GasTankBase
  id: PlasmaTank
  name: plasma tank
  description: Contains dangerous plasma. Do not inhale. Extremely flammable. It can hold 5 L of gas.
  components:
  - type: Sprite
    sprite: Objects/Tanks/plasma.rsi
  - type: Item
    sprite: Objects/Tanks/plasma.rsi
  - type: GasTank
    releasePressure: 101.3
  - type: Clothing
    sprite: Objects/Tanks/plasma.rsi
    slots:
    - Belt
    - suitStorage
