# SPDX-FileCopyrightText: 2024 Aidenkrz <aiden@djkraz.com>
# SPDX-FileCopyrightText: 2024 IProduceWidgets <107586145+IProduceWidgets@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later

- type: entity
  parent: CrateEmptySpawner
  id: CratePermaEscapeSpawner
  name: Perma Escape Crate Spawner
  components:
  - type: EntityTableSpawner
    table: !type:GroupSelector
      children:
      - id: MobTick # These need to be killable by one dude with a shovel.
        weight: 0.3
      - !type:GroupSelector
        weight: 0.7
        children:
        # Please alphabetize <3
        - id: ClosetMaintenanceFilledRandom
          weight: 3
        - id: CrateEngineeringMiniJetpack
        - id: CratePermaEscapeBureaucracy
        - id: CratePermaEscapeComs
          weight: 2
        - id: CratePermaEscapeDigging
          weight: 2
        - id: CratePermaEscapeEVA
        - id: CratePermaEscapeGiftsFromSyndicate
        - id: CratePermaEscapeGun
        - id: CratePermaEscapeLights
        - id: CratePermaEscapeMats
          weight: 2
        - id: CratePermaEscapeMerc
        - id: CratePermaEscapeTowercap
          weight: 2
        - id: CrateTrashCartFilled
        - id: CrateServiceCustomSmokable
    offset: 0.0

- type: entity
  parent: CrateGenericSteel
  id: CratePermaEscapeDigging
  suffix: Digging
  components:
  - type: EntityTableContainerFill
    containers:
      entity_storage: !type:AllSelector
        children:
        - id: Shovel
        - id: Pickaxe
          prob: 0.90
        - id: Pickaxe
          prob: 0.40
        - id: Pickaxe
          prob: 0.10
        - id: Shovel
          prob: 0.50
        - id: Shovel
          prob: 0.20
        - id: HydroponicsToolSpade
          prob: 0.10
        - id: HydroponicsToolHatchet
          prob: 0.05

- type: entity
  parent: CrateGenericSteel
  id: CratePermaEscapeEVA
  suffix: EVA
  components:
  - type: EntityTableContainerFill
    containers:
      entity_storage: !type:AllSelector
        children:
        - id: ClothingHeadHelmetEVALarge
        - id: ClothingOuterHardsuitEVAPrisoner
        - id: ClothingHeadHelmetEVALarge
          prob: 0.80
        - id: ClothingOuterHardsuitEVAPrisoner
          prob: 0.80
        - id: ClothingOuterHardsuitVoidParamed
          prob: 0.10
        - id: ClothingOuterRedRacoon
          prob: 0.10
        - id: ClothingOuterSanta
          prob: 0.10
        - id: ClothingOuterEVASuitSyndicate
          prob: 0.20
        - id: EmergencyOxygenTankFilled
          prob: 0.25
        - id: EmergencyOxygenTank
          prob: 0.25
        - id: OxygenTankFilled
          prob: 0.05

- type: entity
  parent: CrateGenericSteel
  id: CratePermaEscapeGun
  suffix: Gun
  components:
  - type: EntityTableContainerFill
    containers:
      entity_storage: !type:GroupSelector
        children:
        - id: WeaponPistolMk58
          weight: 1.5
        - id: FoamCrossbow
        - id: WeaponRifleFoam
          weight: 0.5
        - id: WeaponPistolFlintlock
          weight: 2
        - id: WeaponShotgunBlunderbuss
        - id: WeaponShotgunBlunderbuss
          weight: 1.5
        - id: WeaponRevolverPirate
          weight: 1.5
        - id: WeaponProtoKineticAccelerator
          weight: 2

- type: entity
  parent: CrateGenericSteel
  id: CratePermaEscapeBureaucracy
  suffix: Bureaucracy
  components:
  - type: EntityTableContainerFill
    containers:
      entity_storage: !type:AllSelector
        children:
        - id: RubberStampApproved
        - id: RubberStampDenied
        - id: Paper
          amount: 5
        - id: Pen
          amount: 3
        - !type:GroupSelector
          rolls: 2
          children:
          - id: BoxFolderBaseEmpty
          - id: BoxFolderBlackEmpty
          - id: BoxFolderBlueEmpty
          - id: BoxFolderGreenEmpty
          - id: BoxFolderGreyEmpty
          - id: BoxFolderRedEmpty
          - id: BoxFolderYellowEmpty
        - id: CrayonBox
          prob: 0.50
        - id: CrayonBox
          prob: 0.10
        - id: ClearPDA # change to visitor one day.
          prob: 0.10
        - id: PersonalAI

- type: entity
  parent: CrateGenericSteel
  id: CratePermaEscapeLights
  suffix: Glowsticks
  components:
  - type: EntityTableContainerFill
    containers:
      entity_storage: !type:AllSelector
        children:
        - id: GlowstickBlue
          prob: 0.50
        - id: GlowstickBlue
          prob: 0.20
        - id: GlowstickBlue
          prob: 0.05
        - id: GlowstickGreen
          prob: 0.50
        - id: GlowstickGreen
          prob: 0.20
        - id: GlowstickGreen
          prob: 0.05
        - id: GlowstickPurple
          prob: 0.50
        - id: GlowstickPurple
          prob: 0.20
        - id: GlowstickPurple
          prob: 0.05
        - id: GlowstickRed
          prob: 0.50
        - id: GlowstickRed
          prob: 0.20
        - id: GlowstickRed
          prob: 0.05
        - id: GlowstickYellow
          prob: 0.50
        - id: GlowstickYellow
          prob: 0.20
        - id: GlowstickYellow
          prob: 0.05

- type: entity
  parent: CrateGenericSteel
  id: CratePermaEscapeMats
  suffix: Materials
  components:
  - type: EntityTableContainerFill
    containers:
      entity_storage: !type:GroupSelector
        rolls: 2
        children:
        - id: SheetSteel
        - id: PartRodMetal

- type: entity
  parent: CrateGenericSteel
  id: CratePermaEscapeGiftsFromSyndicate
  suffix: Syndicate gifts
  components:
  - type: EntityTableContainerFill
    containers:
      entity_storage: !type:AllSelector
        children:
        - id: ClothingEyesGlassesOutlawGlasses
        - id: ClothingHeadHatOutlawHat
        - id: HappyHonkNukieSnacks
        - id: CyberPen
          prob: 0.10
        - !type:GroupSelector
          children:
          - id: CockroachCube
          - id: AbominationCube
            weight: 0.20
          - id: SpaceCarpCube
            weight: 0.20
          - id: SyndicateSponge
            weight: 0.20
        - id: MindShieldImplanter
          prob: 0.20
        - id: ClothingHandsGlovesConducting # funny
          prob: 0.30
        - id: CigPackSyndicate
          prob: 0.80
        - id: StimpackMini
          prob: 0.20
        - id: StimpackMini
          prob: 0.10
        - id: CombatMedipen
          prob: 0.05
        - id: MedkitCombatFilled
          prob: 0.01
        - id: SoapSyndie
          prob: 0.15
        - id: DnaScramblerImplanter
          prob: 0.005

- type: entity
  parent: CrateGenericSteel
  id: CratePermaEscapeMerc
  suffix: Mercenary
  components:
  - type: EntityTableContainerFill
    containers:
      entity_storage: !type:AllSelector
        children:
        - id: ClothingUniformJumpsuitMercenary
        - id: ClothingHeadBandMerc
          prob: 0.50
        - id: ClothingHeadHatBeretMerc
          prob: 0.20
        - id: ClothingHeadHelmetMerc
          prob: 0.05
        - id: ClothingEyesGlassesMercenary
          prob: 0.20
        - id: ClothingMaskGasMerc
          prob: 0.10
        - id: ClothingHandsGlovesMercFingerless
          prob: 0.20
        - id: ClothingHandsMercGlovesCombat
          prob: 0.05
        - id: ClothingBackpackMerc
          prob: 0.50
        - id: ClothingShoesBootsMerc
          prob: 0.50
        - id: ClothingOuterVestWebMerc
          prob: 0.25
        - id: ClothingBeltMercWebbing
          prob: 0.05

- type: entity
  parent: CrateGenericSteel
  id: CratePermaEscapeComs
  suffix: Comms
  components:
  - type: EntityTableContainerFill
    containers:
      entity_storage: !type:AllSelector
        children:
        - !type:GroupSelector
          children:
          - id: ClothingHeadsetMining
          - id: ClothingHeadsetMining
          - id: ClothingHeadsetMining
          - id: ClothingHeadsetGrey
          - id: ClothingHeadsetScience
          - id: ClothingHeadsetService
          - id: ClothingHeadsetEngineering
          - id: ClothingHeadsetMedical
        - id: EncryptionKeyCargo
          prob: 0.05
        - id: EncryptionKeyScience
          prob: 0.05
        - id: EncryptionKeyService
          prob: 0.05
        - id: EncryptionKeyMedical
          prob: 0.05
        - id: EncryptionKeyEngineering
          prob: 0.05
        - id: EncryptionKeySecurity
          prob: 0.01

- type: entity
  parent: CrateGenericSteel
  id: CratePermaEscapeTowercap
  suffix: Towercap
  components:
  - type: EntityTableContainerFill
    containers:
      entity_storage: !type:AllSelector
        children:
        - id: TowercapSeeds
        - id: TowercapSeeds
          prob: 0.80
        - id: TowercapSeeds
          prob: 0.50
        - id: TowercapSeeds
          prob: 0.20
        - id: SteelcapSeeds
          prob: 0.10
        - id: SteelLog
        - id: HydroponicsToolHatchet
          prob: 0.75
