# SPDX-FileCopyrightText: 2024 Aiden <aiden@djkraz.com>
# SPDX-FileCopyrightText: 2024 Aviu00 <93730715+Aviu00@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 BombasterDS <115770678+BombasterDS@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Piras314 <p1r4s@proton.me>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aidenkrz <aiden@djkraz.com>
# SPDX-FileCopyrightText: 2025 Aineias1 <142914808+Aineias1@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 August Eymann <august.eymann@gmail.com>
# SPDX-FileCopyrightText: 2025 CerberusWolfie <wb.johnb.willis@gmail.com>
# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
# SPDX-FileCopyrightText: 2025 John Willis <143434770+CerberusWolfie@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 SX-7 <sn1.test.preria.2002@gmail.com>
# SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later

- type: entity
  id: BoxSurvivalSlots
  parent: BaseItem
  name: survival box
  description: It's a box with basic internals inside.
  suffix: Standard
  components:
  - type: Sprite
    sprite: _Goobstation/Objects/Misc/emergencybox.rsi
    state: box
  - type: Appearance
  - type: Item
    size: Normal
    shape:
    - 0,0,1,1
  - type: PhysicalComposition
    materialComposition:
      Cardboard: 100
  - type: StaticPrice
    price: 10
  - type: Tag
    tags:
    - BoxCardboard
  - type: ContainerContainer
    containers:
      water: !type:ContainerSlot
      nutriblock: !type:ContainerSlot
      flare: !type:ContainerSlot
      tank: !type:ContainerSlot
      mask: !type:ContainerSlot
      emergencypen: !type:ContainerSlot
      spacepen: !type:ContainerSlot
  - type: ItemSlots
    slots:
      water:
        ejectOnInteract: false
        whitelist:
          tags:
          - DrinkBottle
      nutriblock:
        ejectOnInteract: false
        whitelist:
          tags:
          - FoodSnack
          - BreadEmergency
          - FoodTinMRE
      flare:
        ejectOnInteract: false
        whitelist:
          tags:
          - Flare
      tank:
        ejectOnInteract: false
        whitelist:
          tags:
          - EmergencyOxygenTank
          - ExtendedEmergencyOxygenTank
          - ClownEmergencyOxygenTank
          - EmergencyNitrogenTank
          - ExtendedEmergencyNitrogenTank
          - EmergencyPlasmaTank
          - ExtendedEmergencyPlasmaTank
          - EmergencyWaterVaporTank
      mask:
        ejectOnInteract: false
        whitelist:
          tags:
          - BreathMask
          - SecurityBreathMask
          - SyndicateBreathMask
      emergencypen:
        ejectOnInteract: false
        whitelist:
          tags:
          - EmergencyMedipen
      spacepen:
        ejectOnInteract: false
        whitelist:
          tags:
          - SpaceMedipen
  - type: ContainerFill
    containers:
      water:
      - DrinkWaterBottleFull
      nutriblock:
      - FoodSnackNutribrick
      flare:
      - Flare
      tank:
      - EmergencyOxygenTankFilled
      mask:
      - ClothingMaskBreath
      emergencypen:
      - EmergencyMedipen
      spacepen:
      - SpaceMedipen
  - type: ItemMapper
    mapLayers:
      nutriblock:
        whitelist:
          tags:
          - FoodSnack
          - BreadEmergency
          - FoodTinMRE
      flare:
        whitelist:
          tags:
          - Flare
      emergencypen:
        whitelist:
          tags:
          - EmergencyMedipen
      spacepen:
        whitelist:
          tags:
          - SpaceMedipen
      water:
        whitelist:
          tags:
          - DrinkBottle
      mask:
        whitelist:
          tags:
          - BreathMask
      secmask:
        whitelist:
          tags:
          - SecurityBreathMask
      syndiemask:
        whitelist:
          tags:
          - SyndicateBreathMask
      oxy:
        whitelist:
          tags:
          - EmergencyOxygenTank
      oxyextend:
        whitelist:
          tags:
          - ExtendedEmergencyOxygenTank
      oxyclown:
        whitelist:
          tags:
          - ClownEmergencyOxygenTank
      nit:
        whitelist:
          tags:
          - EmergencyNitrogenTank
      vapor:
        whitelist:
          tags:
          - EmergencyWaterVaporTank
      battery:
        whitelist:
          tags:
          - DisposableBattery
      welder:
        whitelist:
          tags:
          - WeldingTool
      cable:
        whitelist:
          tags:
          - CableCoil


- type: entity
  parent: BoxSurvivalSlots
  id: BoxSurvivalSlotsNitrogen
  suffix: Standard N2
  components:
  - type: ContainerFill
    containers:
      water:
      - DrinkWaterBottleFull
      nutriblock:
      - FoodSnackNutribrick
      flare:
      - Flare
      tank:
      - EmergencyNitrogenTankFilled
      mask:
      - ClothingMaskBreath
      emergencypen:
      - EmergencyMedipen
      spacepen:
      - SpaceMedipen
  - type: Label
    currentLabel: reagent-name-nitrogen

- type: entity
  parent: BoxSurvivalSlots
  id: BoxSurvivalSlotsEngineering
  name: extended-capacity survival box
  description: It's a box with basic internals inside. This one is labelled to contain an extended-capacity tank.
  suffix: Extended
  components:
  - type: ContainerFill
    containers:
      water:
      - DrinkWaterBottleFull
      nutriblock:
      - FoodSnackNutribrick
      flare:
      - Flare
      tank:
      - ExtendedEmergencyOxygenTankFilled
      mask:
      - ClothingMaskBreath
      emergencypen:
      - EmergencyMedipen
      spacepen:
      - SpaceMedipen
  - type: Sprite
    state: box_extend

- type: entity
  parent: BoxSurvivalSlotsEngineering
  id: BoxSurvivalSlotsEngineeringNitrogen
  suffix: Extended N2
  components:
  - type: ContainerFill
    containers:
      water:
      - DrinkWaterBottleFull
      nutriblock:
      - FoodSnackNutribrick
      flare:
      - Flare
      tank:
      - ExtendedEmergencyNitrogenTankFilled
      mask:
      - ClothingMaskBreath
      emergencypen:
      - EmergencyMedipen
      spacepen:
      - SpaceMedipen
  - type: Label
    currentLabel: reagent-name-nitrogen
  - type: Sprite
    state: box_extend

- type: entity
  parent: BoxSurvivalSlots
  id: BoxSurvivalSlotsSecurity
  name: survival box
  description: It's a box with basic internals inside.
  suffix: Security
  components:
  - type: ContainerFill
    containers:
      water:
      - DrinkWaterBottleFull
      nutriblock:
      - FoodSnackNutribrick
      flare:
      - Flare
      tank:
      - ExtendedEmergencyOxygenTankFilled
      mask:
      - ClothingMaskGasSecurity
      emergencypen:
      - EmergencyMedipen
      spacepen:
      - SpaceMedipen
  - type: Sprite
    state: box_sec

- type: entity
  parent: BoxSurvivalSlotsSecurity
  id: BoxSurvivalSlotsSecurityNitrogen
  suffix: Security N2
  components:
  - type: ContainerFill
    containers:
      water:
      - DrinkWaterBottleFull
      nutriblock:
      - FoodSnackNutribrick
      flare:
      - Flare
      tank:
      - ExtendedEmergencyNitrogenTankFilled
      mask:
      - ClothingMaskGasSecurity
      emergencypen:
      - EmergencyMedipen
      spacepen:
      - SpaceMedipen
  - type: Label
    currentLabel: reagent-name-nitrogen
  - type: Sprite
    state: box_sec

- type: entity
  parent: BoxSurvivalSlots
  id: BoxSurvivalSlotsMedical
  name: survival box
  description: It's a box with basic internals inside.
  suffix: Medical
  components:
  - type: ContainerFill
    containers:
      water:
      - DrinkWaterBottleFull
      nutriblock:
      - FoodSnackNutribrick
      flare:
      - Flare
      tank:
      - EmergencyOxygenTankFilled
      mask:
      - ClothingMaskBreathMedical
      emergencypen:
      - EmergencyMedipen
      spacepen:
      - SpaceMedipen
  - type: Sprite
    state: box_med

- type: entity
  parent: BoxSurvivalSlotsMedical
  id: BoxSurvivalSlotsMedicalNitrogen
  suffix: Medical N2
  components:
  - type: ContainerFill
    containers:
      water:
      - DrinkWaterBottleFull
      nutriblock:
      - FoodSnackNutribrick
      flare:
      - Flare
      tank:
      - EmergencyNitrogenTankFilled
      mask:
      - ClothingMaskBreathMedical
      emergencypen:
      - EmergencyMedipen
      spacepen:
      - SpaceMedipen
  - type: Label
    currentLabel: reagent-name-nitrogen
  - type: Sprite
    state: box_med

- type: entity
  parent: BoxSurvivalSlots
  id: BoxHugSlots
  name: box of hugs
  description: A special box for sensitive people.
  suffix: Emergency
  components:
  - type: ContainerFill
    containers:
      water:
      - DrinkWaterBottleFull
      nutriblock:
      - FoodSnackNutribrick
      flare:
      - Flare
      tank:
      - EmergencyFunnyOxygenTankFilled
      mask:
      - ClothingMaskBreath
      emergencypen:
      - EmergencyMedipen
      spacepen:
      - SpaceMedipen
  - type: Sprite
    state: box_hug
  - type: Item
    heldPrefix: hug
  - type: Tag
    tags:
    - BoxHug

- type: entity
  parent: BoxHugSlots
  id: BoxHugSlotsNitrogen
  suffix: Emergency N2
  components:
  - type: ContainerFill
    containers:
      water:
      - DrinkWaterBottleFull
      nutriblock:
      - FoodSnackNutribrick
      flare:
      - Flare
      tank:
      - EmergencyNitrogenTankFilled
      mask:
      - ClothingMaskBreath
      emergencypen:
      - EmergencyMedipen
      spacepen:
      - SpaceMedipen
  - type: Label
    currentLabel: reagent-name-nitrogen

- type: entity
  parent: BoxSurvivalSlots
  id: BoxSurvivalSlotsSyndicate
  name: extended-capacity survival box
  description: It's a box with basic internals inside. This one is labelled to contain an extended-capacity tank.
  suffix: Syndicate
  components:
  - type: ContainerFill
    containers:
      water:
      - DrinkWaterBottleFull
      nutriblock:
      - FoodSnackNutribrick
      flare:
      - Flare
      tank:
      - ExtendedEmergencyOxygenTankFilled
      mask:
      - ClothingMaskGasSyndicate
      emergencypen:
      - EmergencyMedipen
      spacepen:
      - SpaceMedipen
  - type: Sprite
    state: box_syndie

- type: entity
  parent: BoxSurvivalSlotsSyndicate
  id: BoxSurvivalSlotsSyndicateNitrogen
  suffix: Syndicate N2
  components:
  - type: ContainerFill
    containers:
      water:
      - DrinkWaterBottleFull
      nutriblock:
      - FoodSnackNutribrick
      flare:
      - Flare
      tank:
      - ExtendedEmergencyNitrogenTankFilled
      mask:
      - ClothingMaskGasSyndicate
      emergencypen:
      - EmergencyMedipen
      spacepen:
      - SpaceMedipen
  - type: Label
    currentLabel: reagent-name-nitrogen
  - type: Sprite
    state: box_syndie

- type: entity
  parent: BoxSurvivalSlots
  id: BoxMimeSlots
  suffix: Mime, Emergency
  components:
  - type: ContainerFill
    containers:
      water:
      - DrinkWaterBottleFull
      nutriblock:
      - FoodBreadBaguette
      flare:
      - Flare
      tank:
      - EmergencyOxygenTankFilled
      mask:
      - ClothingMaskBreath
      emergencypen:
      - EmergencyMedipen
      spacepen:
      - SpaceMedipen

- type: entity
  parent: BoxSurvivalSlots
  id: BoxMimeMothSlots
  suffix: Mime, Emergency Moth
  components:
  - type: ContainerFill
    containers:
      water:
      - DrinkWaterBottleFull
      nutriblock:
      - FoodBreadBaguetteCotton
      flare:
      - Flare
      tank:
      - EmergencyOxygenTankFilled
      mask:
      - ClothingMaskBreath
      emergencypen:
      - EmergencyMedipen
      spacepen:
      - SpaceMedipen

- type: entity
  parent: BoxSurvivalSlots
  id: BoxMimeSlotsNitrogen
  suffix: Mime, Emergency N2
  components:
  - type: ContainerFill
    containers:
      water:
      - DrinkWaterBottleFull
      nutriblock:
      - FoodBreadBaguette
      flare:
      - Flare
      tank:
      - EmergencyNitrogenTankFilled
      mask:
      - ClothingMaskBreath
      emergencypen:
      - EmergencyMedipen
      spacepen:
      - SpaceMedipen
  - type: Label
    currentLabel: reagent-name-nitrogen


## EE PLASMAMEN

- type: entity
  parent: BoxSurvivalSlots
  id: BoxSurvivalSlotsPlasma
  suffix: Standard Plasma
  components:
  - type: ContainerFill
    containers:
      water:
      - DrinkMilkBottleFull
      nutriblock:
      - FoodSnackNutribrick
      flare:
      - Flare
      tank:
      - EmergencyPlasmaTankFilled
      mask:
      - ClothingMaskBreath
      emergencypen:
      - EmergencyMedipen
      spacepen:
      - SpaceMedipen
  - type: Label
    currentLabel: reagent-name-plasma

- type: entity
  parent: BoxSurvivalSlotsEngineering
  id: BoxSurvivalSlotsEngineeringPlasma
  suffix: Extended Plasma
  components:
  - type: ContainerFill
    containers:
      water:
      - DrinkMilkBottleFull
      nutriblock:
      - FoodSnackNutribrick
      flare:
      - Flare
      tank:
      - EmergencyPlasmaTankFilled
      mask:
      - ClothingMaskBreath
      emergencypen:
      - EmergencyMedipen
      spacepen:
      - SpaceMedipen
  - type: Label
    currentLabel: reagent-name-plasma
  - type: Sprite
    state: box_extend

- type: entity
  parent: BoxSurvivalSlotsSecurity
  id: BoxSurvivalSlotsSecurityPlasma
  suffix: Security Plasma
  components:
  - type: ContainerFill
    containers:
      water:
      - DrinkMilkBottleFull
      nutriblock:
      - FoodSnackNutribrick
      flare:
      - Flare
      tank:
      - EmergencyPlasmaTankFilled
      mask:
      - ClothingMaskGasSecurity
      emergencypen:
      - EmergencyMedipen
      spacepen:
      - SpaceMedipen
  - type: Label
    currentLabel: reagent-name-plasma
  - type: Sprite
    state: box_sec

- type: entity
  parent: BoxSurvivalSlotsMedical
  id: BoxSurvivalSlotsMedicalPlasma
  suffix: Medical Plasma
  components:
  - type: ContainerFill
    containers:
      water:
      - DrinkMilkBottleFull
      nutriblock:
      - FoodSnackNutribrick
      flare:
      - Flare
      tank:
      - EmergencyPlasmaTankFilled
      mask:
      - ClothingMaskBreathMedical
      emergencypen:
      - EmergencyMedipen
      spacepen:
      - SpaceMedipen
  - type: Label
    currentLabel: reagent-name-plasma
  - type: Sprite
    state: box_med

- type: entity
  parent: BoxHugSlots
  id: BoxHugSlotsPlasma
  suffix: Emergency Plasma
  components:
  - type: ContainerFill
    containers:
      water:
      - DrinkMilkBottleFull
      nutriblock:
      - FoodSnackNutribrick
      flare:
      - Flare
      tank:
      - EmergencyPlasmaTankFilled
      mask:
      - ClothingMaskBreath
      emergencypen:
      - EmergencyMedipen
      spacepen:
      - SpaceMedipen
  - type: Label
    currentLabel: reagent-name-plasma

- type: entity
  parent: BoxSurvivalSlotsSyndicate
  id: BoxSurvivalSlotsSyndicatePlasma
  suffix: Syndicate Plasma
  components:
  - type: ContainerFill
    containers:
      water:
      - DrinkMilkBottleFull
      nutriblock:
      - FoodSnackNutribrick
      flare:
      - Flare
      tank:
      - EmergencyPlasmaTankFilled
      mask:
      - ClothingMaskGasSyndicate
      emergencypen:
      - EmergencyMedipen
      spacepen:
      - SpaceMedipen
  - type: Label
    currentLabel: reagent-name-plasma
  - type: Sprite
    state: box_syndie

- type: entity
  parent: BoxSurvivalSlots
  id: BoxMimeSlotsPlasma
  suffix: Mime, Emergency Plasma
  components:
  - type: ContainerFill
    containers:
      water:
      - DrinkMilkBottleFull
      nutriblock:
      - FoodBreadBaguette
      flare:
      - Flare
      tank:
      - EmergencyPlasmaTankFilled
      mask:
      - ClothingMaskBreath
      emergencypen:
      - EmergencyMedipen
      spacepen:
      - SpaceMedipen
  - type: Label
    currentLabel: reagent-name-plasma

- type: entity
  parent: BoxSurvivalSlots
  id: BoxSurvivalSlotsSilicon
  name: silicon survival box
  description: It's a box with basic tools for self-repair inside.
  components:
  - type: ContainerContainer
    containers:
      battery: !type:ContainerSlot
      flare: !type:ContainerSlot
      welder: !type:ContainerSlot
      cable: !type:ContainerSlot
  - type: ItemSlots
    slots:
      battery:
        ejectOnInteract: false
        whitelist:
          tags:
          - DisposableBattery
      flare:
        ejectOnInteract: false
        whitelist:
          tags:
          - Flare
      welder:
        ejectOnInteract: false
        whitelist:
          tags:
          - WeldingTool
      cable:
        ejectOnInteract: false
        whitelist:
          tags:
          - CableCoil
  - type: ContainerFill
    containers:
      battery:
      - BatteryDisposable
      flare:
      - Flare
      welder:
      - WelderMini
      cable:
      - CableApcStack10
  - type: Sprite
    state: box_silicon
