From: SnappingOpossum Date: Sun, 23 Nov 2025 20:12:50 +0000 (+1100) Subject: Replace (almost) all existing storage fills with entity table container fills (#41360) X-Git-Url: https://git.smokeofanarchy.ru/gitweb.cgi?a=commitdiff_plain;h=7afd0f0b9e7005d3f485b3690b94910d2a222ce8;p=space-station-14.git Replace (almost) all existing storage fills with entity table container fills (#41360) * Replace all existing storage fills with container fills, adjust some formatting to accomadate * Forgot to remove that * I really need to spell better * Right, those are 3x3 * Change some NestedSelectors to GroupSelectors * Actual container fills, test fix (maybe), and a few minor formatting changes * Fix some more mistakes * Forgot to add to that comment * Some parenting fixes * Test optimisation, maybe * Roll holiday lights instead of individually listing it * Move eletrical toolbox to NestedSelector * Back to entity tables (except for vending) * More nesting (and a TODO) * Yet another fix * Probably shoulda done it this way originally * Entity tables for vending restocks * I am good at formatting * Make added table names consistent * Make grand lottery weights a little more readable * Use existing fills for bio suit crates * Get rid of some more redundant amounts * Nuke the StorageFill test section and update some comments * Apply changes from code review * Split off changes to vending restocks * Split off changes to vending restocks * Apply more changes from code review * Attempt #2 of detangling this mess (oh shit I missed the pin) * They look so similar * I am great at formatting * Missed a newline * How did I manage to do that * Move toy in FoodMealHappyHonkClown to top to prioritise * Apply changes from review and move dank pizza to organise by weight --- diff --git a/Resources/Prototypes/Catalog/Fills/Backpacks/backpack.yml b/Resources/Prototypes/Catalog/Fills/Backpacks/backpack.yml index 4713d8d5bd..f9b0881852 100644 --- a/Resources/Prototypes/Catalog/Fills/Backpacks/backpack.yml +++ b/Resources/Prototypes/Catalog/Fills/Backpacks/backpack.yml @@ -12,9 +12,11 @@ name: syndicate raid suit bundle description: "Contains the Syndicate's durable raid armor suit." components: - - type: StorageFill - contents: - - id: ClothingOuterArmorRaid - - id: ClothingHeadHelmetRaid - - id: ClothingMaskGasSyndicate - - id: ClothingHandsGlovesCombat + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: ClothingOuterArmorRaid + - id: ClothingHeadHelmetRaid + - id: ClothingMaskGasSyndicate + - id: ClothingHandsGlovesCombat diff --git a/Resources/Prototypes/Catalog/Fills/Backpacks/duffelbag.yml b/Resources/Prototypes/Catalog/Fills/Backpacks/duffelbag.yml index 2a8a195be7..6ae9e32a59 100644 --- a/Resources/Prototypes/Catalog/Fills/Backpacks/duffelbag.yml +++ b/Resources/Prototypes/Catalog/Fills/Backpacks/duffelbag.yml @@ -4,14 +4,16 @@ name: surgical duffel bag description: "A large duffel bag for holding extra medical supplies - this one seems to be designed for holding surgical tools." components: - - type: StorageFill - contents: - - id: Hemostat - - id: Saw - - id: Drill - - id: Cautery - - id: Retractor - - id: Scalpel + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: Hemostat + - id: Saw + - id: Drill + - id: Cautery + - id: Retractor + - id: Scalpel - type: entity parent: ClothingBackpackDuffelSyndicateMedicalBundle @@ -19,16 +21,18 @@ name: syndicate surgical duffel bag description: A large duffel bag containing a full suite of surgical tools. components: - - type: StorageFill - contents: - - id: Hemostat - - id: SawAdvanced - - id: Drill - - id: Cautery - - id: Retractor - - id: ScalpelAdvanced - - id: ClothingHandsGlovesNitrile - - id: EmergencyRollerBedSpawnFolded + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: Hemostat + - id: SawAdvanced + - id: Drill + - id: Cautery + - id: Retractor + - id: ScalpelAdvanced + - id: ClothingHandsGlovesNitrile + - id: EmergencyRollerBedSpawnFolded - type: entity parent: ClothingBackpackDuffelSyndicateBundle @@ -36,13 +40,15 @@ name: Bulldog bundle description: "Lean and mean: Contains the popular Bulldog Shotgun, a 12g slug drum, and four 12g buckshot drums." #, and a pair of Thermal Imaging Goggles. components: - - type: StorageFill - contents: - - id: WeaponShotgunBulldog - - id: MagazineShotgun - amount: 3 - - id: MagazineShotgunSlug -# - id: ThermalImagingGoggles + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: WeaponShotgunBulldog + - id: MagazineShotgun + amount: 3 + - id: MagazineShotgunSlug +# - id: ThermalImagingGoggles - type: entity parent: ClothingBackpackDuffelSyndicateBundle @@ -50,12 +56,14 @@ name: C-20r bundle description: "Old faithful: The classic C-20r Submachine Gun, bundled with three magazines." #, and a Suppressor. components: - - type: StorageFill - contents: - - id: WeaponSubMachineGunC20r - - id: MagazinePistolSubMachineGun - amount: 2 -# - id: SMGSuppressor + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: WeaponSubMachineGunC20r + - id: MagazinePistolSubMachineGun + amount: 2 +# - id: SMGSuppressor - type: entity parent: ClothingBackpackDuffelSyndicateBundle @@ -63,11 +71,13 @@ name: Estoc DMR bundle description: "For medium-range sharpshooting, the Estoc DMR. Bundled with three magazines." components: - - type: StorageFill - contents: - - id: WeaponRifleEstoc - - id: MagazineRifle - amount: 2 + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: WeaponRifleEstoc + - id: MagazineRifle + amount: 2 - type: entity parent: ClothingBackpackDuffelSyndicateBundle @@ -75,11 +85,13 @@ name: Python bundle description: "Go loud and proud with a fully loaded Magnum Python, bundled with two speed loaders." components: - - type: StorageFill - contents: - - id: WeaponRevolverPythonAP - - id: SpeedLoaderMagnumAP - amount: 2 + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: WeaponRevolverPythonAP + - id: SpeedLoaderMagnumAP + amount: 2 - type: entity parent: ClothingBackpackDuffelSyndicateBundle @@ -87,10 +99,12 @@ name: L6 Saw bundle description: "More dakka: The iconic L6 lightmachinegun, bundled with 2 box magazines." components: - - type: StorageFill - contents: - - id: WeaponLightMachineGunL6 - - id: MagazineLightRifleBox + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: WeaponLightMachineGunL6 + - id: MagazineLightRifleBox - type: entity parent: ClothingBackpackDuffelSyndicateBundle @@ -98,13 +112,15 @@ name: China-Lake bundle description: "An old China-Lake grenade launcher bundled with 11 rounds of various destruction capability." components: - - type: StorageFill - contents: - - id: WeaponLauncherChinaLake - - id: GrenadeBlast - amount: 4 - - id: GrenadeFrag - amount: 4 + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: WeaponLauncherChinaLake + - id: GrenadeBlast + amount: 4 + - id: GrenadeFrag + amount: 4 - type: entity parent: ClothingBackpackDuffelSyndicateBundle @@ -112,17 +128,19 @@ name: M-90gl bundle description: "A versatile battle rifle with an attached grenade launcher, bundled with 3 magazines and 6 grenades of various capabilities." components: - - type: StorageFill - contents: - - id: WeaponRifleM90GrenadeLauncher - - id: MagazineRifle - amount: 2 - - id: GrenadeBlast - amount: 2 - - id: GrenadeFlash - amount: 2 - - id: GrenadeFrag - amount: 2 + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: WeaponRifleM90GrenadeLauncher + - id: MagazineRifle + amount: 2 + - id: GrenadeBlast + amount: 2 + - id: GrenadeFlash + amount: 2 + - id: GrenadeFrag + amount: 2 - type: entity parent: ClothingBackpackDuffelSyndicateAmmo @@ -130,18 +148,19 @@ name: ammo bundle description: "Reloading! Contains 4 magazines for the C-20r, 5 drums for the Bulldog, 3 magazines for the Estoc DMR, and 2 ammo boxes for the L6 SAW." components: - - type: StorageFill - contents: - - id: MagazinePistolSubMachineGun - amount: 4 - - id: MagazineShotgun - amount: 4 - - id: MagazineRifle - amount: 3 - - id: MagazineShotgunSlug - amount: 1 - - id: MagazineLightRifleBox - amount: 2 + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: MagazinePistolSubMachineGun + amount: 4 + - id: MagazineShotgun + amount: 4 + - id: MagazineRifle + amount: 3 + - id: MagazineShotgunSlug + - id: MagazineLightRifleBox + amount: 2 - type: entity parent: ClothingBackpackDuffelClown @@ -150,14 +169,16 @@ components: - type: Tag tags: [] # ignore "WhitelistChameleon" tag - - type: StorageFill - contents: - - id: ClothingUniformJumpsuitClown - - id: ClothingShoesClown - - id: ClothingMaskClown - - id: BikeHorn - - id: ClownPDA - - id: ClothingHeadsetService + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: ClothingUniformJumpsuitClown + - id: ClothingShoesClown + - id: ClothingMaskClown + - id: BikeHorn + - id: ClownPDA + - id: ClothingHeadsetService - type: entity parent: ClothingBackpackDuffelSyndicateBundle @@ -165,11 +186,13 @@ name: carp suit duffel bag description: Contains a carp suit and some friends to play with. components: - - type: StorageFill - contents: - - id: ClothingOuterSuitCarp - - id: PlushieCarp - amount: 6 + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: ClothingOuterSuitCarp + - id: PlushieCarp + amount: 6 - type: entity parent: ClothingBackpackDuffelSyndicateBundle @@ -180,22 +203,24 @@ - type: Storage grid: - 0,0,8,4 - - type: StorageFill - contents: - - id: ClothingUniformJumpsuitPyjamaSyndicateRed - - id: ClothingUniformJumpsuitPyjamaSyndicateBlack - - id: ClothingUniformJumpsuitPyjamaSyndicatePink - - id: ClothingHeadPyjamaSyndicateRed - - id: ClothingHeadPyjamaSyndicateBlack - - id: ClothingHeadPyjamaSyndicatePink - - id: ClothingShoesSlippers - amount: 3 - - id: BedsheetSyndie - amount: 3 - - id: PlushieCarp - - id: PlushieNuke - - id: PlushieLizard - - id: PlushieSharkBlue + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: ClothingUniformJumpsuitPyjamaSyndicateRed + - id: ClothingUniformJumpsuitPyjamaSyndicateBlack + - id: ClothingUniformJumpsuitPyjamaSyndicatePink + - id: ClothingHeadPyjamaSyndicateRed + - id: ClothingHeadPyjamaSyndicateBlack + - id: ClothingHeadPyjamaSyndicatePink + - id: ClothingShoesSlippers + amount: 3 + - id: BedsheetSyndie + amount: 3 + - id: PlushieCarp + - id: PlushieNuke + - id: PlushieLizard + - id: PlushieSharkBlue - type: entity parent: ClothingBackpackDuffelSyndicateBundle @@ -203,18 +228,21 @@ name: syndicate C-4 bundle description: "Contains a lot of C-4 charges." components: - - type: StorageFill - contents: - - id: C4 - amount: 8 + - type: EntityTableContainerFill + containers: + storagebase: + id: C4 + amount: 8 - type: entity parent: ClothingBackpackChameleon id: ClothingBackpackChameleonFill suffix: Fill, Chameleon components: - - type: StorageFill - contents: + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: - id: ChameleonPDA - id: ClothingUniformJumpsuitChameleon - id: ClothingOuterChameleon @@ -233,14 +261,16 @@ name: syndicate EVA bundle description: "Contains the Syndicate approved EVA suit." components: - - type: StorageFill - contents: - - id: ClothingHeadHelmetSyndicate - - id: ClothingOuterEVASuitSyndicate - - id: ClothingMaskGasSyndicate - - id: ClothingHandsGlovesColorYellowBudget - - id: DoubleEmergencyOxygenTankFilled - - id: DoubleEmergencyNitrogenTankFilled + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: ClothingHeadHelmetSyndicate + - id: ClothingOuterEVASuitSyndicate + - id: ClothingMaskGasSyndicate + - id: ClothingHandsGlovesColorYellowBudget + - id: DoubleEmergencyOxygenTankFilled + - id: DoubleEmergencyNitrogenTankFilled - type: entity parent: ClothingBackpackDuffelSyndicateBundle @@ -248,13 +278,13 @@ name: syndicate hardsuit bundle description: "Contains the Syndicate's signature blood red hardsuit." components: - - type: StorageFill - contents: - - id: ClothingOuterHardsuitSyndie - - id: ClothingMaskGasSyndicate - - id: ClothingHandsGlovesCombat - - id: DoubleEmergencyOxygenTankFilled - - id: DoubleEmergencyNitrogenTankFilled + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: ClothingOuterHardsuitSyndie + - !type:NestedSelector + tableId: SyndicateHardsuitExtrasEntityTable - type: entity parent: ClothingBackpackDuffelSyndicateBundle @@ -262,13 +292,13 @@ name: syndicate elite hardsuit bundle description: "Contains the Syndicate's elite hardsuit, which comes with some more stuff in it." components: - - type: StorageFill - contents: - - id: ClothingOuterHardsuitSyndieElite - - id: ClothingMaskGasSyndicate - - id: ClothingHandsGlovesCombat - - id: DoubleEmergencyOxygenTankFilled - - id: DoubleEmergencyNitrogenTankFilled + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: ClothingOuterHardsuitSyndieElite + - !type:NestedSelector + tableId: SyndicateHardsuitExtrasEntityTable - type: entity parent: ClothingBackpackDuffelSyndicateBundle @@ -276,12 +306,19 @@ name: syndicate hardsuit extras bundle description: "Contains stuff that you will absolutely want to have when purchasing a hardsuit." components: - - type: StorageFill - contents: - - id: ClothingMaskGasSyndicate - - id: ClothingHandsGlovesCombat - - id: DoubleEmergencyOxygenTankFilled - - id: DoubleEmergencyNitrogenTankFilled + - type: EntityTableContainerFill + containers: + storagebase: !type:NestedSelector + tableId: SyndicateHardsuitExtrasEntityTable + +- type: entityTable + id: SyndicateHardsuitExtrasEntityTable + table: !type:AllSelector + children: + - id: ClothingMaskGasSyndicate + - id: ClothingHandsGlovesCombat + - id: DoubleEmergencyOxygenTankFilled + - id: DoubleEmergencyNitrogenTankFilled - type: entity parent: ClothingBackpackDuffelSyndicateBundle @@ -289,14 +326,16 @@ name: syndicate zombie bundle description: "An all-in-one kit for unleashing the undead upon a station." components: - - type: StorageFill - contents: - - id: SyringeRomerol - - id: WeaponRevolverPython - - id: MagazineBoxMagnumIncendiary - - id: PillAmbuzolPlus - - id: PillAmbuzol - amount: 3 + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: SyringeRomerol + - id: WeaponRevolverPython + - id: MagazineBoxMagnumIncendiary + - id: PillAmbuzolPlus + - id: PillAmbuzol + amount: 3 - type: entity parent: ClothingBackpackDuffelSyndicateMedicalBundle @@ -304,21 +343,23 @@ name: medical bundle description: "All you need to get your comrades back in the fight." components: - - type: StorageFill - contents: - - id: DefibrillatorSyndicate - - id: MedkitCombatFilled - amount: 4 - - id: Tourniquet - amount: 4 - - id: CombatMedipen - amount: 4 - - id: PunctAutoInjector - amount: 4 - - id: PyraAutoInjector - amount: 4 - - id: AirlossAutoInjector - amount: 4 + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: DefibrillatorSyndicate + - id: MedkitCombatFilled + amount: 4 + - id: Tourniquet + amount: 4 + - id: CombatMedipen + amount: 4 + - id: PunctAutoInjector + amount: 4 + - id: PyraAutoInjector + amount: 4 + - id: AirlossAutoInjector + amount: 4 - type: entity parent: ClothingBackpackDuffelSyndicateBundle @@ -326,18 +367,20 @@ name: decoy bundle description: "Contains distractions, both auditory and visual. Smell coming soon." components: - - type: StorageFill - contents: - - id: BalloonOperative - - id: BalloonAgent - - id: BalloonElite - - id: BalloonJuggernaut - - id: BalloonCommander - - id: SnapPopBox - - id: GrenadeDummy - amount: 2 - - id: SyndieTrickyBomb - amount: 2 + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: BalloonOperative + - id: BalloonAgent + - id: BalloonElite + - id: BalloonJuggernaut + - id: BalloonCommander + - id: SnapPopBox + - id: GrenadeDummy + amount: 2 + - id: SyndieTrickyBomb + amount: 2 - type: entity parent: [ ClothingBackpackDuffelBundle, BaseMajorContraband ] @@ -345,12 +388,14 @@ name: acolyte armor bundle description: "Contains the Acolyte Armor, the must have of any cult leader." components: - - type: StorageFill - contents: - - id: ClothingOuterArmorCult - - id: ClothingHeadHelmetCult - - id: ClothingShoesCult - - id: BedsheetCult + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: ClothingOuterArmorCult + - id: ClothingHeadHelmetCult + - id: ClothingShoesCult + - id: BedsheetCult - type: entity parent: ClothingBackpackDuffelSyndicateBundle @@ -358,16 +403,18 @@ name: basic operative bundle description: "Contains a weapon, medical supplies, breaching tools, spare ammo, and some simple utilities." components: - - type: StorageFill - contents: - - id: WeaponSubMachineGunC20r - - id: MagazinePistolSubMachineGun - amount: 3 - - id: MagazinePistol - - id: SyndicateJawsOfLife - - id: C4 - amount: 2 - - id: MedkitCombatFilled - - id: EmpImplanter - - id: ClothingShoesBootsMagSyndie - - id: AgentIDCard + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: WeaponSubMachineGunC20r + - id: MagazinePistolSubMachineGun + amount: 3 + - id: MagazinePistol + - id: SyndicateJawsOfLife + - id: C4 + amount: 2 + - id: MedkitCombatFilled + - id: EmpImplanter + - id: ClothingShoesBootsMagSyndie + - id: AgentIDCard diff --git a/Resources/Prototypes/Catalog/Fills/Boxes/ammunition.yml b/Resources/Prototypes/Catalog/Fills/Boxes/ammunition.yml index 06005c274f..d0d70a1a88 100644 --- a/Resources/Prototypes/Catalog/Fills/Boxes/ammunition.yml +++ b/Resources/Prototypes/Catalog/Fills/Boxes/ammunition.yml @@ -17,9 +17,10 @@ id: BoxMagazinePistolCaselessRifle description: A box full of .25 caseless magazines. components: - - type: StorageFill - contents: - - id: MagazinePistolCaselessRifle + - type: EntityTableContainerFill + containers: + storagebase: + id: MagazinePistolCaselessRifle amount: 4 - type: entity @@ -28,9 +29,10 @@ id: BoxMagazinePistolCaselessRiflePractice description: A box full of .25 caseless practice magazines. components: - - type: StorageFill - contents: - - id: MagazinePistolCaselessRiflePractice + - type: EntityTableContainerFill + containers: + storagebase: + id: MagazinePistolCaselessRiflePractice amount: 4 # LightRifle @@ -40,9 +42,10 @@ id: BoxMagazineLightRifle description: A box full of .30 rifle magazines. components: - - type: StorageFill - contents: - - id: MagazineLightRifle + - type: EntityTableContainerFill + containers: + storagebase: + id: MagazineLightRifle amount: 4 - type: entity @@ -51,9 +54,10 @@ id: BoxMagazineLightRiflePractice description: A box full of .30 rifle (practice) magazines. components: - - type: StorageFill - contents: - - id: MagazineLightRiflePractice + - type: EntityTableContainerFill + containers: + storagebase: + id: MagazineLightRiflePractice amount: 4 # Magnum @@ -65,9 +69,10 @@ id: BoxMagazinePistolSubMachineGunTopMounted description: A box full of WT550 .35 auto magazines. components: - - type: StorageFill - contents: - - id: MagazinePistolSubMachineGunTopMounted + - type: EntityTableContainerFill + containers: + storagebase: + id: MagazinePistolSubMachineGunTopMounted amount: 3 - type: entity @@ -76,9 +81,10 @@ id: BoxMagazinePistol description: A box full of pistol .35 auto magazines. components: - - type: StorageFill - contents: - - id: MagazinePistol + - type: EntityTableContainerFill + containers: + storagebase: + id: MagazinePistol amount: 4 - type: entity @@ -87,9 +93,10 @@ id: BoxMagazinePistolPractice description: A box full of magazines. components: - - type: StorageFill - contents: - - id: MagazinePistolPractice + - type: EntityTableContainerFill + containers: + storagebase: + id: MagazinePistolPractice amount: 4 - type: entity @@ -98,9 +105,10 @@ id: BoxMagazinePistolHighCapacity description: A box full of machine pistol .35 auto magazines. components: - - type: StorageFill - contents: - - id: MagazinePistolHighCapacity + - type: EntityTableContainerFill + containers: + storagebase: + id: MagazinePistolHighCapacity amount: 4 - type: entity @@ -109,9 +117,10 @@ id: BoxMagazinePistolHighCapacityPractice description: A box full of machine pistol .35 auto (practice) magazines. components: - - type: StorageFill - contents: - - id: MagazinePistolHighCapacityPractice + - type: EntityTableContainerFill + containers: + storagebase: + id: MagazinePistolHighCapacityPractice amount: 4 - type: entity @@ -120,9 +129,10 @@ id: BoxMagazinePistolSubMachineGun description: A box full of SMG .35 auto magazines. components: - - type: StorageFill - contents: - - id: MagazinePistolSubMachineGun + - type: EntityTableContainerFill + containers: + storagebase: + id: MagazinePistolSubMachineGun amount: 3 - type: entity @@ -131,9 +141,10 @@ id: BoxMagazinePistolSubMachineGunPractice description: A box full of SMG .35 auto (practice) magazines. components: - - type: StorageFill - contents: - - id: MagazinePistolSubMachineGunPractice + - type: EntityTableContainerFill + containers: + storagebase: + id: MagazinePistolSubMachineGunPractice amount: 3 # Shotgun @@ -143,9 +154,10 @@ id: BoxMagazineShotgun description: A box full of (.50 pellet) ammo drums. components: - - type: StorageFill - contents: - - id: MagazineShotgun + - type: EntityTableContainerFill + containers: + storagebase: + id: MagazineShotgun amount: 4 - type: entity @@ -154,9 +166,10 @@ id: BoxMagazineShotgunBeanbag description: A box full of (.50 beanbag) ammo drums. components: - - type: StorageFill - contents: - - id: MagazineShotgunBeanbag + - type: EntityTableContainerFill + containers: + storagebase: + id: MagazineShotgunBeanbag amount: 4 - type: entity @@ -165,9 +178,10 @@ id: BoxMagazineShotgunSlug description: A box full of (.50 slug) ammo drums. components: - - type: StorageFill - contents: - - id: MagazineShotgunSlug + - type: EntityTableContainerFill + containers: + storagebase: + id: MagazineShotgunSlug amount: 4 - type: entity @@ -176,9 +190,10 @@ id: BoxMagazineShotgunIncendiary description: A box full of (.50 incendiary) ammo drums. components: - - type: StorageFill - contents: - - id: MagazineShotgunIncendiary + - type: EntityTableContainerFill + containers: + storagebase: + id: MagazineShotgunIncendiary amount: 4 # Rifle @@ -188,9 +203,10 @@ id: BoxMagazineRifle description: A box full of .20 rifle magazines. components: - - type: StorageFill - contents: - - id: MagazineRifle + - type: EntityTableContainerFill + containers: + storagebase: + id: MagazineRifle amount: 4 - type: entity @@ -199,7 +215,8 @@ id: BoxMagazineRiflePractice description: A box full of .20 rifle (practice) magazines. components: - - type: StorageFill - contents: - - id: MagazineRiflePractice + - type: EntityTableContainerFill + containers: + storagebase: + id: MagazineRiflePractice amount: 4 diff --git a/Resources/Prototypes/Catalog/Fills/Boxes/emergency.yml b/Resources/Prototypes/Catalog/Fills/Boxes/emergency.yml index 29f561c1b8..3a9593dbe9 100644 --- a/Resources/Prototypes/Catalog/Fills/Boxes/emergency.yml +++ b/Resources/Prototypes/Catalog/Fills/Boxes/emergency.yml @@ -5,14 +5,16 @@ description: It's a box with basic internals inside. suffix: Standard components: - - type: StorageFill - contents: - - id: ClothingMaskBreath - - id: EmergencyOxygenTankFilled - - id: EmergencyMedipen - - id: Flare - - id: FoodSnackNutribrick - - id: DrinkWaterBottleFull + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: ClothingMaskBreath + - id: EmergencyOxygenTankFilled + - id: EmergencyMedipen + - id: Flare + - id: FoodSnackNutribrick + - id: DrinkWaterBottleFull - type: Sprite layers: - state: internals @@ -23,14 +25,16 @@ id: BoxSurvivalNitrogen suffix: Standard N2 components: - - type: StorageFill - contents: - - id: ClothingMaskBreath - - id: EmergencyNitrogenTankFilled - - id: EmergencyMedipen - - id: Flare - - id: FoodSnackNutribrick - - id: DrinkWaterBottleFull + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: ClothingMaskBreath + - id: EmergencyNitrogenTankFilled + - id: EmergencyMedipen + - id: Flare + - id: FoodSnackNutribrick + - id: DrinkWaterBottleFull - type: Sprite layers: - state: internals @@ -45,14 +49,16 @@ description: It's a box with basic internals inside. This one is labelled to contain an extended-capacity tank. suffix: Extended components: - - type: StorageFill - contents: - - id: ClothingMaskBreath - - id: ExtendedEmergencyOxygenTankFilled - - id: EmergencyMedipen - - id: Flare - - id: FoodSnackNutribrick - - id: DrinkWaterBottleFull + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: ClothingMaskBreath + - id: ExtendedEmergencyOxygenTankFilled + - id: EmergencyMedipen + - id: Flare + - id: FoodSnackNutribrick + - id: DrinkWaterBottleFull - type: Sprite layers: - state: internals @@ -63,14 +69,16 @@ id: BoxSurvivalEngineeringNitrogen suffix: Extended N2 components: - - type: StorageFill - contents: - - id: ClothingMaskBreath - - id: ExtendedEmergencyNitrogenTankFilled - - id: EmergencyMedipen - - id: Flare - - id: FoodSnackNutribrick - - id: DrinkWaterBottleFull + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: ClothingMaskBreath + - id: ExtendedEmergencyNitrogenTankFilled + - id: EmergencyMedipen + - id: Flare + - id: FoodSnackNutribrick + - id: DrinkWaterBottleFull - type: Sprite layers: - state: internals @@ -86,14 +94,16 @@ description: It's a box with basic internals inside. suffix: Security components: - - type: StorageFill - contents: - - id: ClothingMaskGasSecurity - - id: EmergencyOxygenTankFilled - - id: EmergencyMedipen - - id: Flare - - id: FoodSnackNutribrick - - id: DrinkWaterBottleFull + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: ClothingMaskGasSecurity + - id: EmergencyOxygenTankFilled + - id: EmergencyMedipen + - id: Flare + - id: FoodSnackNutribrick + - id: DrinkWaterBottleFull - type: Sprite layers: - state: internals @@ -104,14 +114,16 @@ id: BoxSurvivalSecurityNitrogen suffix: Security N2 components: - - type: StorageFill - contents: - - id: ClothingMaskGasSecurity - - id: EmergencyNitrogenTankFilled - - id: EmergencyMedipen - - id: Flare - - id: FoodSnackNutribrick - - id: DrinkWaterBottleFull + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: ClothingMaskGasSecurity + - id: EmergencyNitrogenTankFilled + - id: EmergencyMedipen + - id: Flare + - id: FoodSnackNutribrick + - id: DrinkWaterBottleFull - type: Sprite layers: - state: internals @@ -127,14 +139,16 @@ description: It's a box with basic internals inside. suffix: Medical components: - - type: StorageFill - contents: - - id: ClothingMaskBreathMedical - - id: EmergencyOxygenTankFilled - - id: EmergencyMedipen - - id: Flare - - id: FoodSnackNutribrick - - id: DrinkWaterBottleFull + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: ClothingMaskBreathMedical + - id: EmergencyOxygenTankFilled + - id: EmergencyMedipen + - id: Flare + - id: FoodSnackNutribrick + - id: DrinkWaterBottleFull - type: Sprite layers: - state: internals @@ -145,14 +159,16 @@ id: BoxSurvivalMedicalNitrogen suffix: Medical N2 components: - - type: StorageFill - contents: - - id: ClothingMaskBreathMedical - - id: EmergencyNitrogenTankFilled - - id: EmergencyMedipen - - id: Flare - - id: FoodSnackNutribrick - - id: DrinkWaterBottleFull + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: ClothingMaskBreathMedical + - id: EmergencyNitrogenTankFilled + - id: EmergencyMedipen + - id: Flare + - id: FoodSnackNutribrick + - id: DrinkWaterBottleFull - type: Sprite layers: - state: internals @@ -173,14 +189,16 @@ - state: heart - type: Item heldPrefix: hug - - type: StorageFill - contents: - - id: ClothingMaskBreath - - id: EmergencyFunnyOxygenTankFilled - - id: EmergencyMedipen - - id: Flare - - id: FoodSnackNutribrick - - id: DrinkWaterBottleFull + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: ClothingMaskBreath + - id: EmergencyFunnyOxygenTankFilled + - id: EmergencyMedipen + - id: Flare + - id: FoodSnackNutribrick + - id: DrinkWaterBottleFull - type: Tag tags: - BoxCardboard @@ -191,14 +209,16 @@ id: BoxHugNitrogen suffix: Emergency N2 components: - - type: StorageFill - contents: - - id: ClothingMaskBreath - - id: EmergencyNitrogenTankFilled - - id: EmergencyMedipen - - id: Flare - - id: FoodSnackNutribrick - - id: DrinkWaterBottleFull + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: ClothingMaskBreath + - id: EmergencyNitrogenTankFilled + - id: EmergencyMedipen + - id: Flare + - id: FoodSnackNutribrick + - id: DrinkWaterBottleFull - type: Label currentLabel: reagent-name-nitrogen @@ -207,28 +227,32 @@ id: BoxMime suffix: Mime, Emergency components: - - type: StorageFill - contents: - - id: ClothingMaskBreath - - id: EmergencyOxygenTankFilled - - id: EmergencyMedipen - - id: Flare - - id: FoodBreadNutriBatard - - id: DrinkWaterBottleFull + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: ClothingMaskBreath + - id: EmergencyOxygenTankFilled + - id: EmergencyMedipen + - id: Flare + - id: FoodBreadNutriBatard + - id: DrinkWaterBottleFull - type: entity parent: BoxSurvivalNitrogen id: BoxMimeNitrogen suffix: Mime, Emergency N2 components: - - type: StorageFill - contents: - - id: ClothingMaskBreath - - id: EmergencyNitrogenTankFilled - - id: EmergencyMedipen - - id: Flare - - id: FoodBreadNutriBatard - - id: DrinkWaterBottleFull + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: ClothingMaskBreath + - id: EmergencyNitrogenTankFilled + - id: EmergencyMedipen + - id: Flare + - id: FoodBreadNutriBatard + - id: DrinkWaterBottleFull - type: Sprite layers: - state: internals @@ -241,14 +265,16 @@ id: BoxMimeMoth suffix: Mime, Emergency moth components: - - type: StorageFill - contents: - - id: ClothingMaskBreath - - id: EmergencyOxygenTankFilled - - id: EmergencyMedipen - - id: Flare - - id: FoodBreadCottonNutriBatard - - id: DrinkWaterBottleFull + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: ClothingMaskBreath + - id: EmergencyOxygenTankFilled + - id: EmergencyMedipen + - id: Flare + - id: FoodBreadCottonNutriBatard + - id: DrinkWaterBottleFull - type: entity parent: BoxCardboard @@ -257,13 +283,15 @@ description: It's a box with basic internals inside. This one is labelled to contain an extended-capacity tank. suffix: Syndicate components: - - type: StorageFill - contents: - - id: ClothingMaskGasSyndicate - - id: ExtendedEmergencyOxygenTankFilled - - id: EmergencyMedipen - - id: Flare - - id: FoodSnackNutribrick + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: ClothingMaskGasSyndicate + - id: ExtendedEmergencyOxygenTankFilled + - id: EmergencyMedipen + - id: Flare + - id: FoodSnackNutribrick - type: Sprite layers: - state: internals @@ -274,13 +302,15 @@ id: BoxSurvivalSyndicateNitrogen suffix: Syndicate N2 components: - - type: StorageFill - contents: - - id: ClothingMaskGasSyndicate - - id: ExtendedEmergencyNitrogenTankFilled - - id: EmergencyMedipen - - id: Flare - - id: FoodSnackNutribrick + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: ClothingMaskGasSyndicate + - id: ExtendedEmergencyNitrogenTankFilled + - id: EmergencyMedipen + - id: Flare + - id: FoodSnackNutribrick - type: Sprite layers: - state: internals diff --git a/Resources/Prototypes/Catalog/Fills/Boxes/general.yml b/Resources/Prototypes/Catalog/Fills/Boxes/general.yml index 6c789a8f59..b8aa2600c5 100644 --- a/Resources/Prototypes/Catalog/Fills/Boxes/general.yml +++ b/Resources/Prototypes/Catalog/Fills/Boxes/general.yml @@ -24,14 +24,15 @@ id: BoxMousetrap description: This box is filled with mousetraps. Try not to get your hand stuck in one. components: - - type: StorageFill - contents: - - id: Mousetrap - amount: 4 - - type: Sprite - layers: - - state: box - - state: mousetraps + - type: EntityTableContainerFill + containers: + storagebase: + id: Mousetrap + amount: 4 + - type: Sprite + layers: + - state: box + - state: mousetraps - type: entity name: lightbulb box @@ -49,9 +50,10 @@ whitelist: components: - LightBulb - - type: StorageFill - contents: - - id: LightBulb + - type: EntityTableContainerFill + containers: + storagebase: + id: LightBulb amount: 12 - type: entity @@ -59,9 +61,10 @@ parent: BoxLightbulb id: BoxWarmLightbulb components: - - type: StorageFill - contents: - - id: WarmLightBulb + - type: EntityTableContainerFill + containers: + storagebase: + id: WarmLightBulb amount: 12 - type: entity @@ -73,9 +76,10 @@ layers: - state: box - state: lighttube - - type: StorageFill - contents: - - id: LightTube + - type: EntityTableContainerFill + containers: + storagebase: + id: LightTube amount: 12 - type: entity @@ -87,32 +91,27 @@ layers: - state: box - state: lightmixed - - type: StorageFill - contents: - - id: LightTube - amount: 6 - - id: LightBulb - amount: 6 + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: LightTube + amount: 6 + - id: LightBulb + amount: 6 - type: entity name: holiday lighttube box parent: BoxLightbulb id: BoxLighttubeHoliday components: - - type: StorageFill - contents: - - id: LightTubeCrystalRed # Its alternating on purpose for the light replacer. - - id: LightTubeCrystalGreen - - id: LightTubeCrystalRed - - id: LightTubeCrystalGreen - - id: LightTubeCrystalRed - - id: LightTubeCrystalGreen - - id: LightTubeCrystalRed - - id: LightTubeCrystalGreen - - id: LightTubeCrystalRed - - id: LightTubeCrystalGreen - - id: LightTubeCrystalRed - - id: LightTubeCrystalGreen + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: LightTubeCrystalRed + - id: LightTubeCrystalGreen + rolls: 6 # Rolls instead of amounts to alternate. - type: entity name: PDA box @@ -120,9 +119,10 @@ id: BoxPDA description: A box of spare PDA microcomputers. components: - - type: StorageFill - contents: - - id: PassengerPDA + - type: EntityTableContainerFill + containers: + storagebase: + id: PassengerPDA amount: 4 - type: Sprite layers: @@ -135,9 +135,10 @@ id: BoxID description: A box of spare blank ID cards. components: - - type: StorageFill - contents: - - id: PassengerIDCard + - type: EntityTableContainerFill + containers: + storagebase: + id: PassengerIDCard amount: 4 - type: Sprite layers: @@ -150,9 +151,10 @@ id: BoxHeadset description: A box of spare passenger headsets. components: - - type: StorageFill - contents: - - id: ClothingHeadsetGrey + - type: EntityTableContainerFill + containers: + storagebase: + id: ClothingHeadsetGrey amount: 4 - type: Sprite layers: @@ -165,9 +167,10 @@ id: BoxMesonScanners description: A box of spare meson goggles. components: - - type: StorageFill - contents: - - id: ClothingEyesGlassesMeson + - type: EntityTableContainerFill + containers: + storagebase: + id: ClothingEyesGlassesMeson amount: 4 - type: Sprite layers: @@ -180,12 +183,14 @@ id: BoxMRE description: A box of decades old military surplus rations. It is surprisingly not rotten. components: - - type: StorageFill - contents: - - id: DrinkMREFlask - - id: FoodSnackNutribrick - - id: FoodSnackMREBrownie - - id: FoodCondimentPacketKetchup + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: DrinkMREFlask + - id: FoodSnackNutribrick + - id: FoodSnackMREBrownie + - id: FoodCondimentPacketKetchup - type: Sprite layers: - state: box @@ -196,9 +201,10 @@ id: BoxHugHealing suffix: Medical components: - - type: StorageFill - contents: - - id: Brutepack + - type: EntityTableContainerFill + containers: + storagebase: + id: Brutepack amount: 3 - type: entity @@ -207,31 +213,34 @@ id: BoxInflatable description: Inflatable walls are not to be used as floatation devices. components: - - type: StorageFill - contents: - - id: InflatableWallStack - amount: 2 - - id: InflatableDoorStack - amount: 2 + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: InflatableWallStack + amount: 2 + - id: InflatableDoorStack + amount: 2 - type: Sprite layers: - state: box - state: inflatable - - type: entity name: hatsune miku day bag parent: ClothingBackpackDuffel id: BoxPerformer description: Happy Hatsune Miku Day! components: - - type: StorageFill - contents: - - id: ClothingShoesBootsPerformer - - id: ClothingUniformJumpskirtPerformer - - id: ClothingHeadPerformerWig - - id: FoodMealMemoryleek - amount: 2 + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: ClothingShoesBootsPerformer + - id: ClothingUniformJumpskirtPerformer + - id: ClothingHeadPerformerWig + - id: FoodMealMemoryleek + amount: 2 - type: entity name: flare box @@ -239,9 +248,10 @@ id: BoxFlare description: A box of flares. Party time. components: - - type: StorageFill - contents: - - id: Flare + - type: EntityTableContainerFill + containers: + storagebase: + id: Flare amount: 6 - type: Sprite layers: @@ -254,9 +264,10 @@ id: BoxTrashbag description: A box of trashbags. Happy janitor noises. components: - - type: StorageFill - contents: - - id: TrashBag + - type: EntityTableContainerFill + containers: + storagebase: + id: TrashBag amount: 6 - type: Storage grid: @@ -276,9 +287,10 @@ id: BoxEncryptionKeyPassenger description: A box of spare encryption keys. components: - - type: StorageFill - contents: - - id: EncryptionKeyCommon + - type: EntityTableContainerFill + containers: + storagebase: + id: EncryptionKeyCommon amount: 4 - type: Sprite layers: @@ -294,9 +306,10 @@ parent: BoxEncryptionKeyPassenger id: BoxEncryptionKeyCargo components: - - type: StorageFill - contents: - - id: EncryptionKeyCargo + - type: EntityTableContainerFill + containers: + storagebase: + id: EncryptionKeyCargo amount: 4 - type: entity @@ -304,9 +317,10 @@ parent: BoxEncryptionKeyPassenger id: BoxEncryptionKeyEngineering components: - - type: StorageFill - contents: - - id: EncryptionKeyEngineering + - type: EntityTableContainerFill + containers: + storagebase: + id: EncryptionKeyEngineering amount: 4 - type: entity @@ -314,9 +328,10 @@ parent: BoxEncryptionKeyPassenger id: BoxEncryptionKeyMedicalScience components: - - type: StorageFill - contents: - - id: EncryptionKeyMedicalScience + - type: EntityTableContainerFill + containers: + storagebase: + id: EncryptionKeyMedicalScience amount: 4 - type: entity @@ -324,9 +339,10 @@ parent: BoxEncryptionKeyPassenger id: BoxEncryptionKeyMedical components: - - type: StorageFill - contents: - - id: EncryptionKeyMedical + - type: EntityTableContainerFill + containers: + storagebase: + id: EncryptionKeyMedical amount: 4 - type: entity @@ -334,9 +350,10 @@ parent: BoxEncryptionKeyPassenger id: BoxEncryptionKeyRobo components: - - type: StorageFill - contents: - - id: EncryptionKeyRobo + - type: EntityTableContainerFill + containers: + storagebase: + id: EncryptionKeyRobo amount: 4 - type: entity @@ -344,9 +361,10 @@ parent: BoxEncryptionKeyPassenger id: BoxEncryptionKeyScience components: - - type: StorageFill - contents: - - id: EncryptionKeyScience + - type: EntityTableContainerFill + containers: + storagebase: + id: EncryptionKeyScience amount: 4 - type: entity @@ -354,9 +372,10 @@ parent: BoxEncryptionKeyPassenger id: BoxEncryptionKeySecurity components: - - type: StorageFill - contents: - - id: EncryptionKeySecurity + - type: EntityTableContainerFill + containers: + storagebase: + id: EncryptionKeySecurity amount: 4 - type: entity @@ -364,9 +383,10 @@ parent: BoxEncryptionKeyPassenger id: BoxEncryptionKeyService components: - - type: StorageFill - contents: - - id: EncryptionKeyService + - type: EntityTableContainerFill + containers: + storagebase: + id: EncryptionKeyService amount: 4 - type: entity @@ -377,9 +397,10 @@ components: - type: Item size: Normal - - type: StorageFill - contents: - - id: EncryptionKeySyndie + - type: EntityTableContainerFill + containers: + storagebase: + id: EncryptionKeySyndie amount: 2 - type: Storage @@ -411,36 +432,40 @@ whitelist: # TODO cardboard boxes shouldn't have whitelisting tags: - Candle - - type: StorageFill - contents: - - id: Candle - amount: 4 - - id: CandleBlue - amount: 2 - - id: CandleRed - amount: 2 - - id: CandleGreen - amount: 2 - - id: CandlePurple - amount: 2 + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: Candle + amount: 4 + - id: CandleBlue + amount: 2 + - id: CandleRed + amount: 2 + - id: CandleGreen + amount: 2 + - id: CandlePurple + amount: 2 - type: entity name: small candle box parent: BoxCandle id: BoxCandleSmall components: - - type: StorageFill - contents: - - id: CandleSmall - amount: 8 - - id: CandleBlueSmall - amount: 4 - - id: CandleRedSmall - amount: 4 - - id: CandleGreenSmall - amount: 4 - - id: CandlePurpleSmall - amount: 4 + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: CandleSmall + amount: 8 + - id: CandleBlueSmall + amount: 4 + - id: CandleRedSmall + amount: 4 + - id: CandleGreenSmall + amount: 4 + - id: CandlePurpleSmall + amount: 4 - type: entity name: darts box @@ -452,16 +477,18 @@ layers: - state: box - state: darts - - type: StorageFill - contents: - - id: Dart - amount: 2 - - id: DartBlue - amount: 2 - - id: DartPurple - amount: 2 - - id: DartYellow - amount: 2 + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: Dart + amount: 2 + - id: DartBlue + amount: 2 + - id: DartPurple + amount: 2 + - id: DartYellow + amount: 2 - type: entity name: envelope box @@ -473,9 +500,10 @@ layers: - state: box - state: envelope - - type: StorageFill - contents: - - id: Envelope + - type: EntityTableContainerFill + containers: + storagebase: + id: Envelope amount: 9 - type: entity @@ -488,9 +516,11 @@ layers: - state: box - state: utensils - - type: StorageFill - contents: - - id: Fork - amount: 2 - - id: Spoon - amount: 2 + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: Fork + amount: 2 + - id: Spoon + amount: 2 diff --git a/Resources/Prototypes/Catalog/Fills/Boxes/heads.yml b/Resources/Prototypes/Catalog/Fills/Boxes/heads.yml index 122aecd27b..fac72c6338 100644 --- a/Resources/Prototypes/Catalog/Fills/Boxes/heads.yml +++ b/Resources/Prototypes/Catalog/Fills/Boxes/heads.yml @@ -4,15 +4,17 @@ id: BoxQMCircuitboards description: A Tote filled with QM's Circuit boards. components: - - type: StorageFill - contents: - - id: CargoBountyComputerCircuitboard - - id: CargoRequestComputerCircuitboard - - id: CargoSaleComputerCircuitboard - - id: CargoShuttleConsoleCircuitboard - - id: SalvageMagnetMachineCircuitboard - - id: SalvageJobBoardComputerCircuitboard - - id: MailTeleporterMachineCircuitboard + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: CargoBountyComputerCircuitboard + - id: CargoRequestComputerCircuitboard + - id: CargoSaleComputerCircuitboard + - id: CargoShuttleConsoleCircuitboard + - id: SalvageMagnetMachineCircuitboard + - id: SalvageJobBoardComputerCircuitboard + - id: MailTeleporterMachineCircuitboard - type: entity name: stamp box [QM] @@ -24,11 +26,13 @@ size: Small shape: - 0,0,1,1 - - type: StorageFill - contents: - - id: RubberStampApproved - - id: RubberStampDenied - - id: RubberStampQm + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: RubberStampApproved + - id: RubberStampDenied + - id: RubberStampQm - type: Storage grid: - 0,0,1,1 @@ -46,11 +50,13 @@ id: BoxHoPCircuitboards description: A Tote filled with HoP's Circuit boards. components: - - type: StorageFill - contents: - - id: IDComputerCircuitboard - - id: FundingAllocationComputerCircuitboard - - id: CargoRequestServiceComputerCircuitboard + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: IDComputerCircuitboard + - id: FundingAllocationComputerCircuitboard + - id: CargoRequestServiceComputerCircuitboard - type: entity name: stamp box [HoP] @@ -62,11 +68,13 @@ size: Small shape: - 0,0,1,1 - - type: StorageFill - contents: - - id: RubberStampApproved - - id: RubberStampDenied - - id: RubberStampHop + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: RubberStampApproved + - id: RubberStampDenied + - id: RubberStampHop - type: Storage grid: - 0,0,1,1 @@ -84,13 +92,15 @@ id: BoxCECircuitboards description: A Tote filled with CE's Circuit boards. components: - - type: StorageFill - contents: - - id: CargoRequestEngineeringComputerCircuitboard - - id: AlertsComputerCircuitboard - - id: AtmosMonitoringComputerCircuitboard - - id: PowerComputerCircuitboard - - id: SolarControlComputerCircuitboard + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: CargoRequestEngineeringComputerCircuitboard + - id: AlertsComputerCircuitboard + - id: AtmosMonitoringComputerCircuitboard + - id: PowerComputerCircuitboard + - id: SolarControlComputerCircuitboard - type: entity name: circuit tote [Captain] @@ -98,10 +108,12 @@ id: BoxCaptainCircuitboards description: A Tote filled with Captain's Circuit boards. components: - - type: StorageFill - contents: - - id: CommsComputerCircuitboard - - id: StationRecordsComputerCircuitboard + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: CommsComputerCircuitboard + - id: StationRecordsComputerCircuitboard - type: entity name: circuit tote [CMO] @@ -109,10 +121,12 @@ id: BoxCMOCircuitboards description: A Tote filled with CMO's Circuit boards. components: - - type: StorageFill - contents: - - id: MedicalTechFabCircuitboard - - id: CargoRequestMedicalComputerCircuitboard + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: MedicalTechFabCircuitboard + - id: CargoRequestMedicalComputerCircuitboard - type: entity name: circuit tote [RD] @@ -120,16 +134,18 @@ id: BoxRDCircuitboards description: A Tote filled with RD's Circuit boards. components: - - type: StorageFill - contents: - - id: CircuitImprinterMachineCircuitboard - - id: ProtolatheMachineCircuitboard - - id: ResearchComputerCircuitboard - - id: CargoRequestScienceComputerCircuitboard - - id: RoboticsConsoleCircuitboard - - id: AnalysisComputerCircuitboard #Because sometimes round start artis just fucking explode on the pad. - - id: ArtifactAnalyzerMachineCircuitboard - - id: StationAiFixerCircuitboard + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: CircuitImprinterMachineCircuitboard + - id: ProtolatheMachineCircuitboard + - id: ResearchComputerCircuitboard + - id: CargoRequestScienceComputerCircuitboard + - id: RoboticsConsoleCircuitboard + - id: AnalysisComputerCircuitboard #Because sometimes round start artis just fucking explode on the pad. + - id: ArtifactAnalyzerMachineCircuitboard + - id: StationAiFixerCircuitboard - type: entity name: circuit tote [HoS] @@ -137,7 +153,9 @@ id: BoxHoSCircuitboards description: A Tote filled with HoS's Circuit boards. components: - - type: StorageFill - contents: - - id: SecurityTechFabCircuitboard - - id: CargoRequestSecurityComputerCircuitboard + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: SecurityTechFabCircuitboard + - id: CargoRequestSecurityComputerCircuitboard diff --git a/Resources/Prototypes/Catalog/Fills/Boxes/medical.yml b/Resources/Prototypes/Catalog/Fills/Boxes/medical.yml index 53d8a00e1d..bd57110a7e 100644 --- a/Resources/Prototypes/Catalog/Fills/Boxes/medical.yml +++ b/Resources/Prototypes/Catalog/Fills/Boxes/medical.yml @@ -4,9 +4,10 @@ id: BoxSyringe description: A box full of syringes. components: - - type: StorageFill - contents: - - id: Syringe + - type: EntityTableContainerFill + containers: + storagebase: + id: Syringe amount: 6 - type: Sprite layers: @@ -19,9 +20,10 @@ id: BoxPillCanister description: A box full of pill canisters. components: - - type: StorageFill - contents: - - id: PillCanister + - type: EntityTableContainerFill + containers: + storagebase: + id: PillCanister amount: 9 - type: Sprite layers: @@ -34,9 +36,10 @@ id: BoxBottle description: A box full of bottles. components: - - type: StorageFill - contents: - - id: ChemistryEmptyBottle01 + - type: EntityTableContainerFill + containers: + storagebase: + id: ChemistryEmptyBottle01 amount: 6 - type: Sprite layers: @@ -49,9 +52,10 @@ id: BoxSterileMask description: This box contains sterile medical masks. components: - - type: StorageFill - contents: - - id: ClothingMaskSterile + - type: EntityTableContainerFill + containers: + storagebase: + id: ClothingMaskSterile amount: 4 - type: Sprite layers: @@ -64,9 +68,10 @@ id: BoxLatexGloves description: Contains sterile latex gloves. components: - - type: StorageFill - contents: - - id: ClothingHandsGlovesLatex + - type: EntityTableContainerFill + containers: + storagebase: + id: ClothingHandsGlovesLatex amount: 4 - type: Sprite layers: @@ -79,9 +84,10 @@ id: BoxNitrileGloves description: Contains sterile nitrile gloves. Better than latex. components: - - type: StorageFill - contents: - - id: ClothingHandsGlovesNitrile + - type: EntityTableContainerFill + containers: + storagebase: + id: ClothingHandsGlovesNitrile amount: 4 - type: Sprite layers: @@ -94,9 +100,10 @@ id: BoxBodyBag description: Contains body bags. components: - - type: StorageFill - contents: - - id: BodyBagFolded + - type: EntityTableContainerFill + containers: + storagebase: + id: BodyBagFolded amount: 4 - type: Sprite layers: @@ -116,9 +123,10 @@ - type: Storage grid: - 0,0,2,1 - - type: StorageFill - contents: - - id: BaseChemistryEmptyVial + - type: EntityTableContainerFill + containers: + storagebase: + id: BaseChemistryEmptyVial amount: 6 - type: Sprite layers: diff --git a/Resources/Prototypes/Catalog/Fills/Boxes/science.yml b/Resources/Prototypes/Catalog/Fills/Boxes/science.yml index cd0320e088..9931b4ccb2 100644 --- a/Resources/Prototypes/Catalog/Fills/Boxes/science.yml +++ b/Resources/Prototypes/Catalog/Fills/Boxes/science.yml @@ -8,12 +8,14 @@ grid: - 0,0,3,2 maxItemSize: Normal - - type: StorageFill - contents: - - id: LargeBeaker - amount: 2 - - id: Beaker - amount: 2 + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: LargeBeaker + amount: 2 + - id: Beaker + amount: 2 - type: Sprite layers: - state: box diff --git a/Resources/Prototypes/Catalog/Fills/Boxes/security.yml b/Resources/Prototypes/Catalog/Fills/Boxes/security.yml index 2f9decab7d..f79797337e 100644 --- a/Resources/Prototypes/Catalog/Fills/Boxes/security.yml +++ b/Resources/Prototypes/Catalog/Fills/Boxes/security.yml @@ -4,10 +4,11 @@ id: BoxHandcuff description: A box full of handcuffs. components: - - type: StorageFill - contents: - - id: Handcuffs - amount: 4 + - type: EntityTableContainerFill + containers: + storagebase: + id: Handcuffs + amount: 4 - type: Sprite layers: - state: box_security @@ -19,10 +20,11 @@ id: BoxZiptie description: A box full of zipties. components: - - type: StorageFill - contents: - - id: Zipties - amount: 9 + - type: EntityTableContainerFill + containers: + storagebase: + id: Zipties + amount: 9 - type: Sprite layers: - state: box_security @@ -34,10 +36,11 @@ id: BoxFlashbang description: 'WARNING: These devices are extremely dangerous and can cause blindness or deafness in repeated use.' components: - - type: StorageFill - contents: - - id: GrenadeFlashBang - amount: 4 + - type: EntityTableContainerFill + containers: + storagebase: + id: GrenadeFlashBang + amount: 4 - type: Sprite layers: - state: box_security @@ -49,10 +52,11 @@ id: BoxStinger description: A box full of stinger grenades. Disperse! components: - - type: StorageFill - contents: - - id: GrenadeStinger - amount: 4 + - type: EntityTableContainerFill + containers: + storagebase: + id: GrenadeStinger + amount: 4 - type: Sprite layers: - state: box_security @@ -64,10 +68,11 @@ id: BoxTearGas description: A box full of tear gas grenades. Hold your breath. components: - - type: StorageFill - contents: - - id: TearGasGrenade - amount: 4 + - type: EntityTableContainerFill + containers: + storagebase: + id: TearGasGrenade + amount: 4 - type: Sprite layers: - state: box_security @@ -79,10 +84,11 @@ id: BoxSechud description: A box of sechuds. components: - - type: StorageFill - contents: - - id: ClothingEyesHudSecurity - amount: 4 + - type: EntityTableContainerFill + containers: + storagebase: + id: ClothingEyesHudSecurity + amount: 4 - type: Sprite layers: - state: box_security @@ -94,10 +100,11 @@ id: BoxSecglasses description: A box of security glasses. components: - - type: StorageFill - contents: - - id: ClothingEyesGlassesSecurity - amount: 4 + - type: EntityTableContainerFill + containers: + storagebase: + id: ClothingEyesGlassesSecurity + amount: 4 - type: Sprite layers: - state: box_security @@ -109,10 +116,11 @@ id: BoxSunglasses description: A box of cool flash-proof sunglasses. components: - - type: StorageFill - contents: - - id: ClothingEyesGlassesSunglasses - amount: 4 + - type: EntityTableContainerFill + containers: + storagebase: + id: ClothingEyesGlassesSunglasses + amount: 4 - type: Sprite layers: - state: box_security @@ -127,10 +135,11 @@ - type: Item shape: - 0,0,1,1 - - type: StorageFill - contents: - - id: ForensicPad - amount: 9 + - type: EntityTableContainerFill + containers: + storagebase: + id: ForensicPad + amount: 9 - type: Sprite layers: - state: box_security @@ -145,13 +154,15 @@ - type: Item shape: - 0,0,1,1 - - type: StorageFill - contents: - - id: EmptyDetonator - amount: 3 - - id: TimerTrigger - amount: 2 - - id: VoiceTrigger + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: EmptyDetonator + amount: 3 + - id: TimerTrigger + amount: 2 + - id: VoiceTrigger - type: Sprite layers: - state: box_security diff --git a/Resources/Prototypes/Catalog/Fills/Boxes/service.yml b/Resources/Prototypes/Catalog/Fills/Boxes/service.yml index 4ba7cf6f7e..f5780dbf19 100644 --- a/Resources/Prototypes/Catalog/Fills/Boxes/service.yml +++ b/Resources/Prototypes/Catalog/Fills/Boxes/service.yml @@ -4,9 +4,10 @@ id: BoxCleanerGrenades description: A box full of cleanades. components: - - type: StorageFill - contents: - - id: CleanerGrenade + - type: EntityTableContainerFill + containers: + storagebase: + id: CleanerGrenade amount: 4 - type: Sprite layers: @@ -19,17 +20,19 @@ id: BoxAgrichem description: For the budding botanist ready to learn about maximizing farm output. This faded box must be at least 50 years old. components: - - type: StorageFill - contents: - - id: PaperAgrichemManual - - id: ChemistryEmptyBottle01 - - id: ChemistryBottlePotassium - - id: ChemistryBottlePhosphorus - - id: ChemistryBottleNitrogen - - id: ChemistryBottleHydrogen - - id: ChemistryBottleEthanol - - id: RadiumChemistryVial - - id: ChlorineChemistryVial + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: PaperAgrichemManual + - id: ChemistryEmptyBottle01 + - id: ChemistryBottlePotassium + - id: ChemistryBottlePhosphorus + - id: ChemistryBottleNitrogen + - id: ChemistryBottleHydrogen + - id: ChemistryBottleEthanol + - id: RadiumChemistryVial + - id: ChlorineChemistryVial - type: Sprite layers: - state: boxwide @@ -44,37 +47,41 @@ id: BoxLightbulbColorfulMixed name: mixed colorful lightbulb box components: - - type: StorageFill - contents: - - id: LightBulbCrystalCyan - amount: 2 - - id: LightBulbCrystalBlue - amount: 2 - - id: LightBulbCrystalGreen - amount: 2 - - id: LightBulbCrystalPink - amount: 2 - - id: LightBulbCrystalRed - amount: 2 - - id: LightBulbCrystalOrange - amount: 2 + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: LightBulbCrystalCyan + amount: 2 + - id: LightBulbCrystalBlue + amount: 2 + - id: LightBulbCrystalGreen + amount: 2 + - id: LightBulbCrystalPink + amount: 2 + - id: LightBulbCrystalRed + amount: 2 + - id: LightBulbCrystalOrange + amount: 2 - type: entity parent: BoxLighttube id: BoxLighttubeColorfulMixed name: mixed colorful lighttube box components: - - type: StorageFill - contents: - - id: LightTubeCrystalCyan - amount: 2 - - id: LightTubeCrystalBlue - amount: 2 - - id: LightTubeCrystalGreen - amount: 2 - - id: LightTubeCrystalPink - amount: 2 - - id: LightTubeCrystalRed - amount: 2 - - id: LightTubeCrystalOrange - amount: 2 + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: LightTubeCrystalCyan + amount: 2 + - id: LightTubeCrystalBlue + amount: 2 + - id: LightTubeCrystalGreen + amount: 2 + - id: LightTubeCrystalPink + amount: 2 + - id: LightTubeCrystalRed + amount: 2 + - id: LightTubeCrystalOrange + amount: 2 diff --git a/Resources/Prototypes/Catalog/Fills/Boxes/syndicate.yml b/Resources/Prototypes/Catalog/Fills/Boxes/syndicate.yml index 98748799ff..288c085d8c 100644 --- a/Resources/Prototypes/Catalog/Fills/Boxes/syndicate.yml +++ b/Resources/Prototypes/Catalog/Fills/Boxes/syndicate.yml @@ -4,12 +4,13 @@ name: electrical disruption kit suffix: Filled components: - - type: StorageFill - contents: + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: - id: EmpGrenade amount: 3 - id: EmpImplanter - amount: 1 - type: entity parent: [BoxVial, BaseSyndicateContraband] @@ -20,17 +21,19 @@ - type: Storage grid: - 0,0,3,2 - - type: StorageFill - contents: - - id: Beaker - amount: 2 - - id: Dropper - # It would be cool to have special "syndicate" chemical analysis goggles - - id: ClothingEyesGlassesChemical - - id: VestineChemistryVial - amount: 2 - - id: BaseChemistryEmptyVial - - id: SyringeStimulants + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: Beaker + amount: 2 + - id: Dropper + # It would be cool to have special "syndicate" chemical analysis goggles + - id: ClothingEyesGlassesChemical + - id: VestineChemistryVial + amount: 2 + - id: BaseChemistryEmptyVial + - id: SyringeStimulants - type: entity parent: [BoxCardboard, BaseSyndicateContraband] @@ -41,9 +44,10 @@ - type: Storage grid: - 0,0,3,1 - - type: StorageFill - contents: - - id: ThrowingKnife + - type: EntityTableContainerFill + containers: + storagebase: + id: ThrowingKnife amount: 4 - type: Sprite layers: @@ -63,9 +67,10 @@ - type: Storage grid: - 0,0,5,3 - - type: StorageFill - contents: - - id: DeathRattleImplanter + - type: EntityTableContainerFill + containers: + storagebase: + id: DeathRattleImplanter amount: 6 - type: entity @@ -86,10 +91,12 @@ layers: - state: box_of_doom - state: france - - type: StorageFill - contents: - - id: WeaponCroissant - amount: 2 - - id: WeaponBaguette - - id: SyndicateMicrowaveMachineCircuitboard - - id: PaperWrittenCombatBakeryKit + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: WeaponCroissant + amount: 2 + - id: WeaponBaguette + - id: SyndicateMicrowaveMachineCircuitboard + - id: PaperWrittenCombatBakeryKit diff --git a/Resources/Prototypes/Catalog/Fills/Crates/antag.yml b/Resources/Prototypes/Catalog/Fills/Crates/antag.yml index e874394eaa..352b33a3d0 100644 --- a/Resources/Prototypes/Catalog/Fills/Crates/antag.yml +++ b/Resources/Prototypes/Catalog/Fills/Crates/antag.yml @@ -4,11 +4,13 @@ suffix: Filled parent: CratePirate components: - - type: StorageFill - contents: - - id: ClothingNeckCloakPirateCap - - id: EnergyCutlass - - id: MicroBombImplanter + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: ClothingNeckCloakPirateCap + - id: EnergyCutlass + - id: MicroBombImplanter - type: entity id: CratePirateChest @@ -16,16 +18,18 @@ suffix: Filled parent: CratePirate components: - - type: StorageFill - contents: - - id: WeaponLauncherPirateCannon - amount: 2 - - id: ClothingOuterCoatGentle - - id: Cutlass - amount: 2 - - id: CannonBall - amount: 2 - - id: WeaponPistolFlintlock - amount: 4 - - id: WeaponShotgunBlunderbuss - amount: 2 + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: WeaponLauncherPirateCannon + amount: 2 + - id: ClothingOuterCoatGentle + - id: Cutlass + amount: 2 + - id: CannonBall + amount: 2 + - id: WeaponPistolFlintlock + amount: 4 + - id: WeaponShotgunBlunderbuss + amount: 2 diff --git a/Resources/Prototypes/Catalog/Fills/Crates/armory.yml b/Resources/Prototypes/Catalog/Fills/Crates/armory.yml index c8df852411..838158085c 100644 --- a/Resources/Prototypes/Catalog/Fills/Crates/armory.yml +++ b/Resources/Prototypes/Catalog/Fills/Crates/armory.yml @@ -4,12 +4,14 @@ name: SMG crate description: Contains two SMGs with four mags. Requires Armory access to open. components: - - type: StorageFill - contents: - - id: WeaponSubMachineGunWt550 - amount: 2 - - id: MagazinePistolSubMachineGunTopMounted - amount: 4 + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: WeaponSubMachineGunWt550 + amount: 2 + - id: MagazinePistolSubMachineGunTopMounted + amount: 4 - type: entity id: CrateArmoryShotgun @@ -17,12 +19,14 @@ name: shotgun crate description: For when the enemy absolutely needs to be replaced with lead. Contains two Enforcer Combat Shotguns, and some standard shotgun shells. Requires Armory access to open. components: - - type: StorageFill - contents: - - id: WeaponShotgunEnforcer - amount: 2 - - id: BoxLethalshot - amount: 4 + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: WeaponShotgunEnforcer + amount: 2 + - id: BoxLethalshot + amount: 4 - type: entity id: CrateTrackingImplants @@ -30,9 +34,10 @@ name: tracking implants description: Contains a handful of tracking implanters. Good for prisoners you'd like to release but still keep track of. components: - - type: StorageFill - contents: - - id: TrackingImplanter + - type: EntityTableContainerFill + containers: + entity_storage: + id: TrackingImplanter amount: 5 - type: entity @@ -41,10 +46,11 @@ name: training bombs description: Contains three low-yield training bombs for security to learn defusal and safe ordnance disposal, EOD suit not included. Requires Armory access to open. components: - - type: StorageFill - contents: - - id: TrainingBomb - amount: 3 + - type: EntityTableContainerFill + containers: + entity_storage: + id: TrainingBomb + amount: 3 - type: entity id: CrateArmoryLaser @@ -52,9 +58,10 @@ name: lasers crate description: Contains three standard-issue laser rifles. Requires Armory access to open. components: - - type: StorageFill - contents: - - id: WeaponLaserCarbine + - type: EntityTableContainerFill + containers: + entity_storage: + id: WeaponLaserCarbine amount: 3 - type: entity @@ -63,12 +70,14 @@ name: pistols crate description: Contains two standard NT pistols with four mags. Requires Armory access to open. components: - - type: StorageFill - contents: - - id: WeaponPistolMk58 - amount: 2 - - id: MagazinePistol - amount: 4 + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: WeaponPistolMk58 + amount: 2 + - id: MagazinePistol + amount: 4 - type: entity id: CrateSecurityRiot @@ -76,18 +85,20 @@ name: swat crate description: Contains two sets of riot armor, helmets, shields, and enforcers loaded with beanbags. Extra ammo is included. Requires Armory access to open. components: - - type: StorageFill - contents: - - id: ClothingOuterArmorRiot - amount: 2 - - id: ClothingHeadHelmetRiot - amount: 2 - - id: WeaponShotgunEnforcerRubber - amount: 2 - - id: BoxBeanbag - amount: 2 - - id: RiotShield - amount: 2 + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: ClothingOuterArmorRiot + amount: 2 + - id: ClothingHeadHelmetRiot + amount: 2 + - id: WeaponShotgunEnforcerRubber + amount: 2 + - id: BoxBeanbag + amount: 2 + - id: RiotShield + amount: 2 - type: entity id: CrateArmoryRifle @@ -95,9 +106,11 @@ name: rifle crate description: Contains two high-powered assault rifles with four mags. Requires Armory access to open. components: - - type: StorageFill - contents: - - id: WeaponRifleLecter - amount: 2 - - id: MagazineRifle - amount: 4 + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: WeaponRifleLecter + amount: 2 + - id: MagazineRifle + amount: 4 diff --git a/Resources/Prototypes/Catalog/Fills/Crates/botany.yml b/Resources/Prototypes/Catalog/Fills/Crates/botany.yml index 8bd6b2ed16..7f95f57d73 100644 --- a/Resources/Prototypes/Catalog/Fills/Crates/botany.yml +++ b/Resources/Prototypes/Catalog/Fills/Crates/botany.yml @@ -4,22 +4,24 @@ name: exotic seeds crate description: Any entrepreneuring botanist's dream. Contains many different exotic seeds. Requires Hydroponics access to open. components: - - type: StorageFill - contents: - - id: EggySeeds - amount: 2 - - id: TowercapSeeds - amount: 2 - - id: TobaccoSeeds - amount: 2 - - id: CannabisSeeds - amount: 2 - - id: NettleSeeds - amount: 2 - - id: FlyAmanitaSeeds - amount: 2 - - id: BungoSeeds - amount: 2 + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: EggySeeds + amount: 2 + - id: TowercapSeeds + amount: 2 + - id: TobaccoSeeds + amount: 2 + - id: CannabisSeeds + amount: 2 + - id: NettleSeeds + amount: 2 + - id: FlyAmanitaSeeds + amount: 2 + - id: BungoSeeds + amount: 2 - type: entity id: CrateHydroponicsSeedsMedicinal @@ -27,18 +29,20 @@ name: medicinal seeds crate description: The wannabe chemist's dream. The power of medicine is at your fingertips! Requires Hydroponics access to open. components: - - type: StorageFill - contents: - - id: AloeSeeds - amount: 3 - - id: AmbrosiaVulgarisSeeds - amount: 3 - - id: GalaxythistleSeeds - amount: 3 - - id: LingzhiSeeds - amount: 3 - - id: PoppySeeds - amount: 3 + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: AloeSeeds + amount: 3 + - id: AmbrosiaVulgarisSeeds + amount: 3 + - id: GalaxythistleSeeds + amount: 3 + - id: LingzhiSeeds + amount: 3 + - id: PoppySeeds + amount: 3 - type: entity id: CrateHydroponicsTools @@ -46,20 +50,22 @@ name: hydroponics equipment crate description: Supplies for growing a great garden! Contains some spray bottles of plant chemicals, a hatchet, a mini-hoe, scythe, as well as a pair of leather gloves and a botanist's apron. components: - - type: StorageFill - contents: - - id: HydroponicsToolMiniHoe - - id: PlantBGoneSpray - - id: WeedSpray - - id: PestSpray - - id: HydroponicsToolClippers - - id: HydroponicsToolScythe - - id: HydroponicsToolSpade - - id: HydroponicsToolHatchet - - id: ClothingOuterApronBotanist - - id: ClothingHandsGlovesLeather - - id: ChemistryBottleEZNutrient - amount: 2 + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: HydroponicsToolMiniHoe + - id: PlantBGoneSpray + - id: WeedSpray + - id: PestSpray + - id: HydroponicsToolClippers + - id: HydroponicsToolScythe + - id: HydroponicsToolSpade + - id: HydroponicsToolHatchet + - id: ClothingOuterApronBotanist + - id: ClothingHandsGlovesLeather + - id: ChemistryBottleEZNutrient + amount: 2 - type: entity id: CrateHydroponicsSeeds @@ -67,32 +73,34 @@ name: seeds crate description: Big things have small beginnings. Contains twenty-four different seeds. components: - - type: StorageFill - contents: - - id: ChiliSeeds - - id: CornSeeds - - id: EggplantSeeds - - id: TomatoSeeds - - id: WheatSeeds - - id: CarrotSeeds - - id: CabbageSeeds - - id: GarlicSeeds - - id: ChanterelleSeeds - - id: PotatoSeeds - - id: SugarcaneSeeds - - id: LemonSeeds - - id: LimeSeeds - - id: OrangeSeeds - - id: OatSeeds - - id: OnionSeeds - - id: OnionRedSeeds - - id: RiceSeeds - - id: SoybeanSeeds - - id: GrapeSeeds - - id: WatermelonSeeds - - id: PeaSeeds - - id: CherrySeeds - - id: CottonSeeds + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: ChiliSeeds + - id: CornSeeds + - id: EggplantSeeds + - id: TomatoSeeds + - id: WheatSeeds + - id: CarrotSeeds + - id: CabbageSeeds + - id: GarlicSeeds + - id: ChanterelleSeeds + - id: PotatoSeeds + - id: SugarcaneSeeds + - id: LemonSeeds + - id: LimeSeeds + - id: OrangeSeeds + - id: OatSeeds + - id: OnionSeeds + - id: OnionRedSeeds + - id: RiceSeeds + - id: SoybeanSeeds + - id: GrapeSeeds + - id: WatermelonSeeds + - id: PeaSeeds + - id: CherrySeeds + - id: CottonSeeds - type: entity id: CrateHydroponicsTray @@ -100,6 +108,7 @@ name: hydroponics tray crate description: Contains a hydroponics tray flatpack. components: - - type: StorageFill - contents: - - id: HydroponicsTrayFlatpack + - type: EntityTableContainerFill + containers: + entity_storage: + id: HydroponicsTrayFlatpack diff --git a/Resources/Prototypes/Catalog/Fills/Crates/cargo.yml b/Resources/Prototypes/Catalog/Fills/Crates/cargo.yml index aab4671a3b..734f7fee59 100644 --- a/Resources/Prototypes/Catalog/Fills/Crates/cargo.yml +++ b/Resources/Prototypes/Catalog/Fills/Crates/cargo.yml @@ -4,9 +4,10 @@ name: luxury mining hardsuit crate description: Finally, a hardsuit Quartermasters could call their own. Centcomm has heard you, now stop asking. components: - - type: StorageFill - contents: - - id: ClothingOuterHardsuitLuxury + - type: EntityTableContainerFill + containers: + entity_storage: + id: ClothingOuterHardsuitLuxury - type: entity id: CrateCargoParcelWrap @@ -14,10 +15,11 @@ name: parcel wrap crate description: All your parcel wrapping needs in one crate, containing three rolls of parcel wrap. components: - - type: StorageFill - contents: - - id: ParcelWrap - amount: 3 + - type: EntityTableContainerFill + containers: + entity_storage: + id: ParcelWrap + amount: 3 - type: entity id: CrateCargoGambling @@ -25,398 +27,227 @@ description: A box containing treasure beyond your greatest imaginations! parent: CratePrivateSecure components: - #never make a storage fill this large - - type: StorageFill - contents: + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - !type:NestedSelector + tableId: LotteryCashEntityTable + - !type:NestedSelector + tableId: LotteryJunkEntityTable + - !type:NestedSelector + tableId: LotteryCanistersEntityTable + - !type:NestedSelector + tableId: LotteryWeaponsEntityTable + - !type:NestedSelector + tableId: LotteryClothingEntityTable + - !type:NestedSelector + tableId: LotterySwagEntityTable + - !type:NestedSelector + tableId: LotteryPlushiesEntityTable + - !type:NestedSelector + tableId: LotteryUsefulEntityTable + - !type:NestedSelector + tableId: LotteryNotUsefulEntityTable + +- type: entityTable + id: LotteryCashEntityTable + table: !type:GroupSelector + children: - id: SpaceCash1000000 - prob: 0.001 - orGroup: Money + weight: 0.01 - id: SpaceCash10000 - prob: 0.01 - orGroup: Money + weight: 0.1 - id: SpaceCash5000 - prob: 0.1 - orGroup: Money - id: SpaceCash2500 - prob: 0.4 - orGroup: Money + weight: 4 - id: SpaceCash500 - prob: 0.3 - orGroup: Money + weight: 3 - id: SpaceCash100 - prob: 0.1 - orGroup: Money - id: SpaceCash10 - prob: 0.05 - orGroup: Money + weight: 0.5 - id: SpaceCash - prob: 0.01 - orGroup: Money - #junk + weight: 0.1 + +- type: entityTable + id: LotteryJunkEntityTable + table: !type:GroupSelector + children: - id: CigaretteSpent - prob: 0.1 - orGroup: Junk - id: FoodBowlBigTrash - prob: 0.1 - orGroup: Junk - id: FoodFrozenPopsicleTrash - prob: 0.1 - orGroup: Junk - id: FoodCornTrash - prob: 0.1 - orGroup: Junk - id: TrashBananaPeel - prob: 0.1 - orGroup: Junk - id: TrashBananaPeelExplosive - prob: 0.001 - orGroup: Junk + weight: 0.01 - id: FoodTinBeansTrash - prob: 0.1 - orGroup: Junk - id: TrashBakedBananaPeel - prob: 0.1 - orGroup: Junk - id: TrashMimanaPeel - prob: 0.1 - orGroup: Junk - id: TrashBananiumPeel - prob: 0.1 - orGroup: Junk - #canisters + +- type: entityTable + id: LotteryCanistersEntityTable + table: !type:GroupSelector + children: - id: AirCanister - prob: 0.001 - orGroup: Canister - id: AmmoniaCanister - prob: 0.001 - orGroup: Canister - id: CarbonDioxideCanister - prob: 0.001 - orGroup: Canister - id: FrezonCanister - prob: 0.001 - orGroup: Canister - id: NitrogenCanister - prob: 0.001 - orGroup: Canister - id: NitrousOxideCanister - prob: 0.001 - orGroup: Canister - id: OxygenCanister - prob: 0.001 - orGroup: Canister - id: PlasmaCanister - prob: 0.001 - orGroup: Canister - id: TritiumCanister - prob: 0.001 - orGroup: Canister - id: WaterVaporCanister - prob: 0.001 - orGroup: Canister - #weapons + +- type: entityTable + id: LotteryWeaponsEntityTable + table: !type:GroupSelector + children: - id: WeaponPulseCarbine - prob: 0.0001 - orGroup: Weapons + weight: 0.01 - id: WeaponRifleAk - prob: 0.0001 - orGroup: Weapons + weight: 0.01 - id: WeaponLauncherPirateCannon - prob: 0.001 - orGroup: Weapons + weight: 0.1 - id: WeaponPistolCHIMP - prob: 0.001 - orGroup: Weapons + weight: 0.1 - id: WeaponSniperMosin - prob: 0.01 - orGroup: Weapons - id: WeaponMakeshiftLaser - prob: 0.001 - orGroup: Weapons + weight: 0.1 - id: Sledgehammer - prob: 0.001 - orGroup: Weapons + weight: 0.1 - id: WeaponMeleeToolboxRobust - prob: 0.01 - orGroup: Weapons - id: ThrowingStar - prob: 0.01 - orGroup: Weapons - id: WeaponLaserGun - prob: 0.001 - orGroup: Weapons + weight: 0.1 - id: WeaponShotgunHandmade - prob: 0.01 - orGroup: Weapons - id: WeaponFlareGun - prob: 0.01 - orGroup: Weapons - id: Bola - prob: 0.01 - orGroup: Weapons - id: ToySword - prob: 0.01 - orGroup: Weapons - id: Shovel - prob: 0.01 - orGroup: Weapons - id: WeaponWaterPistol - prob: 0.01 - orGroup: Weapons - id: WeaponWaterBlaster - prob: 0.01 - orGroup: Weapons - id: WeaponTurretXeno - prob: 0.01 - orGroup: Weapons - id: WeaponRifleFoam - prob: 0.03 - orGroup: Weapons - #clothing + weight: 3 + +- type: entityTable + id: LotteryClothingEntityTable + table: !type:GroupSelector + children: - id: ClothingUniformJumpsuitFamilyGuy - prob: 0.05 - orGroup: Clothes + weight: 5 - id: ClothingOuterHardsuitCBURN - prob: 0.001 - orGroup: Clothes + weight: 0.1 - id: ClothingOuterHardsuitSanta - prob: 0.001 - orGroup: Clothes + weight: 0.1 - id: ClothingBackpackERTClown - prob: 0.001 - orGroup: Clothes + weight: 0.1 - id: ClothingNeckCloakAdmin - prob: 0.01 - orGroup: Clothes - id: ClothingOuterFlannelBlue - prob: 0.01 - orGroup: Clothes - id: ClothingHeadHelmetBone - prob: 0.01 - orGroup: Clothes - id: ClothingOuterSuitCarp - prob: 0.01 - orGroup: Clothes - id: ClothingHeadHatCatEars - prob: 0.01 - orGroup: Clothes - id: ClothingHeadHatDogEars - prob: 0.01 - orGroup: Clothes - id: ClothingOuterArmorReflective - prob: 0.01 - orGroup: Clothes - id: ClothingUniformJumpskirtSyndieFormalDress - prob: 0.01 - orGroup: Clothes - id: ClothingNeckCloakNanotrasen - prob: 0.01 - orGroup: Clothes - id: ClothingUniformJumpsuitNanotrasen - prob: 0.01 - orGroup: Clothes - id: ClothingShoesSnakeskinBoots - prob: 0.01 - orGroup: Clothes - id: ClothingOuterCoatSpaceAsshole - prob: 0.01 - orGroup: Clothes - id: ClothingUniformJumpsuitHawaiYellow - prob: 0.01 - orGroup: Clothes - id: ClothingHeadSafari - prob: 0.01 - orGroup: Clothes - id: ClothingMaskGasMerc - prob: 0.01 - orGroup: Clothes - id: ClothingHeadHatCardborg - prob: 0.01 - orGroup: Clothes - id: ClothingUnderSocksCoder - prob: 0.01 - orGroup: Clothes - id: ClothingUniformJumpskirtOfLife - prob: 0.01 - orGroup: Clothes - #swag + +- type: entityTable + id: LotterySwagEntityTable + table: !type:GroupSelector + children: - id: ClothingNeckBling - prob: 0.01 - orGroup: Swag - id: ClothingShoesBling - prob: 0.01 - orGroup: Swag - id: IngotGold1 - prob: 0.01 - orGroup: Swag - id: IngotGold - prob: 0.001 - orGroup: Swag + weight: 0.1 - id: GoldOre1 - prob: 0.01 - orGroup: Swag - id: GoldOre - prob: 0.001 - orGroup: Swag + weight: 0.1 - id: DrinkGoldenCup - prob: 0.01 - orGroup: Swag - id: ToolboxGoldFilled - prob: 0.001 - orGroup: Swag + weight: 0.1 - id: ClothingEyesGlassesGar - prob: 0.01 - orGroup: Swag - id: ClothingEyesGlassesGarGiga - prob: 0.01 - orGroup: Swag - id: ClothingEyesGlassesGarOrange - prob: 0.01 - orGroup: Swag - id: ClothingHeadHatChameleon - prob: 0.01 - orGroup: Swag - id: ClothingBeltChampion - prob: 0.01 - orGroup: Swag - #plushies + +- type: entityTable + id: LotteryPlushiesEntityTable + table: !type:GroupSelector + children: - id: PlushieRGBee - prob: 0.01 - orGroup: Plushies - id: PlushieGhost - prob: 0.01 - orGroup: Plushies - id: PlushieHampter - prob: 0.01 - orGroup: Plushies - id: PlushieGhostRevenant - prob: 0.01 - orGroup: Plushies - id: PlushiePenguin - prob: 0.01 - orGroup: Plushies - id: PlushieHuman - prob: 0.01 - orGroup: Plushies - id: PlushieLizard - prob: 0.01 - orGroup: Plushies - id: PlushieRouny - prob: 0.01 - orGroup: Plushies - id: PlushieLamp - prob: 0.01 - orGroup: Plushies - id: PlushieSharkBlue - prob: 0.01 - orGroup: Plushies - id: PlushieMoth - prob: 0.01 - orGroup: Plushies - id: PlushieVulp - prob: 0.01 - orGroup: Plushies - id: PlushieArachind - prob: 0.01 - orGroup: Plushies - id: PlushieLizardJobMultiweh # the exceedingly rare multiweh! - prob: 0.01 - orGroup: Plushies - id: PlushieThrongler #hehe - prob: 0.0005 - orGroup: Plushies - #useful + weight: 0.05 + +- type: entityTable + id: LotteryUsefulEntityTable + table: !type:GroupSelector + children: - id: AmeJar - prob: 0.01 - orGroup: Useful - id: Omnitool - prob: 0.001 - orGroup: Useful + weight: 0.1 - id: SoapOmega - prob: 0.001 - orGroup: Useful + weight: 0.1 - id: ClothingEyesGlassesMeson - prob: 0.01 - orGroup: Useful - id: MechVim - prob: 0.01 - orGroup: Useful - id: Chainsaw - prob: 0.001 - orGroup: Useful + weight: 0.1 - id: Crowbar - prob: 0.01 - orGroup: Useful - id: WelderIndustrial - prob: 0.01 - orGroup: Useful - id: HydroponicsToolHatchet - prob: 0.01 - orGroup: Useful - id: ToyAmongPequeno - prob: 0.01 - orGroup: Useful - id: Lamp - prob: 0.01 - orGroup: Useful - id: FloraTreeLarge - prob: 0.01 - orGroup: Useful - id: LightTree #Funny mobs maybe - prob: 0.01 - orGroup: Useful - #notuseful + +- type: entityTable + id: LotteryNotUsefulEntityTable + table: !type:GroupSelector + children: - id: LidSalami - prob: 0.01 - orGroup: NotUseful - id: MobHamsterHamlet - prob: 0.01 - orGroup: NotUseful - id: MobLaserRaptor - prob: 0.01 - orGroup: NotUseful - id: DrinkNothing - prob: 0.01 - orGroup: NotUseful - id: FoodOatmeal - prob: 0.01 - orGroup: NotUseful - id: FoodDonutChaos - prob: 0.01 - orGroup: NotUseful - id: RagItem - prob: 0.01 - orGroup: NotUseful - id: ClothingHandsGlovesColorYellowBudget - prob: 0.01 - orGroup: NotUseful - id: CartridgeCap - prob: 0.01 - orGroup: NotUseful - id: EncryptionKeyCommon - prob: 0.01 - orGroup: NotUseful - id: CableHVStack1 - prob: 0.01 - orGroup: NotUseful - id: DrinkMugBlue - prob: 0.01 - orGroup: NotUseful - id: CablecuffsBroken - prob: 0.01 - orGroup: NotUseful - id: FoodPlateTin - prob: 0.01 - orGroup: NotUseful - id: WeakKudzu - prob: 0.01 - orGroup: NotUseful - id: MagazineFoamBox - prob: 0.001 - orGroup: NotUseful + weight: 0.1 - id: BoxDonkSoftBox - prob: 0.008 - orGroup: NotUseful + weight: 0.8 - id: GrenadeFoamDart - prob: 0.001 - orGroup: NotUseful + weight: 0.1 diff --git a/Resources/Prototypes/Catalog/Fills/Crates/chemistry.yml b/Resources/Prototypes/Catalog/Fills/Crates/chemistry.yml index c4e2ed4a52..45fb81f1b5 100644 --- a/Resources/Prototypes/Catalog/Fills/Crates/chemistry.yml +++ b/Resources/Prototypes/Catalog/Fills/Crates/chemistry.yml @@ -4,28 +4,20 @@ name: chemicals crate (P) description: Contains chemicals from the P-Block of elements. Requires Chemistry access to open. components: - - type: StorageFill - contents: + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: - id: JugAluminium - amount: 1 - id: JugCarbon - amount: 1 - id: JugChlorine - amount: 1 - id: JugFluorine - amount: 1 - id: JugIodine - amount: 1 - id: JugPhosphorus - amount: 1 - id: JugSulfur - amount: 1 - id: JugSilicon - amount: 1 - id: JugOxygen - amount: 1 - id: JugNitrogen - amount: 1 - type: entity id: CrateChemistryS @@ -33,18 +25,15 @@ name: chemicals crate (S) description: Contains chemicals from the S-Block of elements. Requires Chemistry access to open. components: - - type: StorageFill - contents: + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: - id: JugHydrogen - amount: 1 - id: JugLithium - amount: 1 - id: JugSodium - amount: 1 - id: JugPotassium - amount: 1 - id: JugRadium - amount: 1 - type: entity id: CrateChemistryD @@ -52,18 +41,15 @@ name: chemicals crate (D) description: Contains chemicals from the D-Block of elements. Requires Chemistry access to open. components: - - type: StorageFill - contents: + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: - id: JugIron - amount: 1 - id: JugCopper - amount: 1 - id: JugGold - amount: 1 - id: JugMercury - amount: 1 - id: JugSilver - amount: 1 - type: entity id: CratePlantBGone @@ -71,7 +57,8 @@ name: bulk Plant-B-Gone crate description: From Monstano. "Unwanted Weeds, Meet Your Celestial Roundup!" components: - - type: StorageFill - contents: - - id: JugPlantBGone - amount: 5 + - type: EntityTableContainerFill + containers: + entity_storage: + id: JugPlantBGone + amount: 5 diff --git a/Resources/Prototypes/Catalog/Fills/Crates/emergency.yml b/Resources/Prototypes/Catalog/Fills/Crates/emergency.yml index 716d5a07be..bf47d3f271 100644 --- a/Resources/Prototypes/Catalog/Fills/Crates/emergency.yml +++ b/Resources/Prototypes/Catalog/Fills/Crates/emergency.yml @@ -4,14 +4,16 @@ name: bomb suit crate description: Science gone bonkers? Beeping behind the airlock? Buy now and be the hero the station des... I mean needs! (time not included) components: - - type: StorageFill - contents: - - id: ClothingHeadHelmetBombSuit - - id: ClothingMaskGas - - id: Screwdriver - - id: Wirecutter - - id: Multitool - - id: ClothingOuterSuitBomb + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: ClothingHeadHelmetBombSuit + - id: ClothingMaskGas + - id: Screwdriver + - id: Wirecutter + - id: Multitool + - id: ClothingOuterSuitBomb - type: entity id: CrateEmergencyFire @@ -19,20 +21,22 @@ name: firefighting crate description: Only you can prevent station fires. Partner up with two firefighter suits, gas masks, flashlights, large oxygen tanks, extinguishers, and hardhats! components: - - type: StorageFill - contents: - - id: FlashlightLantern - amount: 2 - - id: FireExtinguisher - amount: 2 - - id: ClothingHeadHatHardhatRed - amount: 2 - - id: ClothingMaskGas - amount: 2 - - id: ClothingOuterSuitFire - amount: 2 - - id: OxygenTankFilled - amount: 2 + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: FlashlightLantern + amount: 2 + - id: FireExtinguisher + amount: 2 + - id: ClothingHeadHatHardhatRed + amount: 2 + - id: ClothingMaskGas + amount: 2 + - id: ClothingOuterSuitFire + amount: 2 + - id: OxygenTankFilled + amount: 2 - type: entity id: CrateEmergencyInternals @@ -40,18 +44,20 @@ name: internals crate description: Master your life energy and control your breathing with 3 breath masks, emergency suits and large air tanks. components: - - type: StorageFill - contents: - - id: ClothingMaskGas - amount: 3 - - id: ClothingMaskBreath - amount: 3 - - id: OxygenTankFilled - amount: 3 - - id: NitrogenTankFilled - amount: 3 - - id: ClothingOuterSuitEmergency - amount: 3 + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: ClothingMaskGas + amount: 3 + - id: ClothingMaskBreath + amount: 3 + - id: OxygenTankFilled + amount: 3 + - id: NitrogenTankFilled + amount: 3 + - id: ClothingOuterSuitEmergency + amount: 3 - type: entity id: CrateEmergencyInternalsLarge @@ -59,8 +65,10 @@ name: internals crate (large) description: Master your life energy and control your breathing with 6 breath masks, emergency suits and large air tanks. components: - - type: StorageFill - contents: + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: - id: ClothingMaskGas amount: 6 - id: ClothingMaskBreath @@ -78,14 +86,16 @@ name: internals crate (nitrogen) description: Contains four breath masks and four large nitrogen tanks. Intended for Slimepeople and Vox. components: - - type: StorageFill - contents: - - id: ClothingMaskGas - amount: 2 - - id: ClothingMaskBreath - amount: 2 - - id: NitrogenTankFilled - amount: 4 + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: ClothingMaskGas + amount: 2 + - id: ClothingMaskBreath + amount: 2 + - id: NitrogenTankFilled + amount: 4 - type: entity id: CrateEmergencyRadiation @@ -93,15 +103,17 @@ name: radiation protection crate description: Survive the Nuclear Apocalypse and Supermatter Engine alike with two sets of Radiation suits. Each set contains a helmet, suit, and Geiger counter. We'll even throw in a bottle of vodka and some glasses too, considering the life-expectancy of people who order this. components: - - type: StorageFill - contents: - - id: ClothingOuterSuitRad - amount: 2 - - id: GeigerCounter - amount: 2 - - id: DrinkVodkaBottleFull - - id: DrinkShotGlass - amount: 2 + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: ClothingOuterSuitRad + amount: 2 + - id: GeigerCounter + amount: 2 + - id: DrinkVodkaBottleFull + - id: DrinkShotGlass + amount: 2 - type: entity id: CrateEmergencyInflatablewall @@ -109,9 +121,10 @@ name: inflatable wall crate description: Three stacks of inflatable walls for when the stations metal walls don't want to hold atmosphere anymore. components: - - type: StorageFill - contents: - - id: BoxInflatable + - type: EntityTableContainerFill + containers: + entity_storage: + id: BoxInflatable - type: entity id: CrateGenericBiosuit @@ -119,11 +132,12 @@ name: emergency bio suit crate description: Contains 2 biohazard suits to ensure that no disease will distract you from what you're doing there. components: - - type: StorageFill - contents: - - id: ClothingOuterBioGeneral - amount: 2 - - id: ClothingHeadHatHoodBioGeneral - amount: 2 - - id: ClothingMaskGas - amount: 2 + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - !type:NestedSelector + tableId: FillBiohazardGearGeneric + rolls: 2 + - id: ClothingMaskGas + amount: 2 diff --git a/Resources/Prototypes/Catalog/Fills/Crates/engineering.yml b/Resources/Prototypes/Catalog/Fills/Crates/engineering.yml index 51e6440a34..bcf73a2c4d 100644 --- a/Resources/Prototypes/Catalog/Fills/Crates/engineering.yml +++ b/Resources/Prototypes/Catalog/Fills/Crates/engineering.yml @@ -4,20 +4,22 @@ name: engineering gear crate description: Various engineering gear parts. components: - - type: StorageFill - contents: - - id: ClothingBeltUtility - amount: 2 - - id: ClothingEyesGlassesMeson - amount: 2 - - id: ClothingHeadHatHardhatYellow - amount: 2 - - id: ClothingHeadHatWelding - amount: 2 - - id: ClothingOuterVestHazard - amount: 3 - - id: ClothingHandsGlovesColorYellow - amount: 2 + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: ClothingBeltUtility + amount: 2 + - id: ClothingEyesGlassesMeson + amount: 2 + - id: ClothingHeadHatHardhatYellow + amount: 2 + - id: ClothingHeadHatWelding + amount: 2 + - id: ClothingOuterVestHazard + amount: 3 + - id: ClothingHandsGlovesColorYellow + amount: 2 - type: entity id: CrateEngineeringToolbox @@ -25,12 +27,14 @@ name: toolbox crate description: Two mechanical and two electrical toolboxes. components: - - type: StorageFill - contents: - - id: ToolboxMechanicalFilled - amount: 2 - - id: ToolboxElectricalFilled - amount: 2 + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: ToolboxMechanicalFilled + amount: 2 + - id: ToolboxElectricalFilled + amount: 2 #- type: entity # id: CrateEngineeringPowercell @@ -38,10 +42,11 @@ # name: AME crate # description: Three microcreactor powercells. # components: -# - type: StorageFill -# contents: -# - id: PowerCellMicroreactor -# amount: 3 +# - type: EntityTableContainerFill +# containers: +# entity_storage: +# id: PowerCellMicroreactor +# amount: 3 - type: entity id: CrateEngineeringCableLV @@ -49,9 +54,10 @@ name: LV cable crate description: 3 coils of LV cables. components: - - type: StorageFill - contents: - - id: CableApcStack + - type: EntityTableContainerFill + containers: + entity_storage: + id: CableApcStack amount: 3 - type: entity @@ -60,9 +66,10 @@ name: MV cable crate description: 3 coils of MV cables. components: - - type: StorageFill - contents: - - id: CableMVStack + - type: EntityTableContainerFill + containers: + entity_storage: + id: CableMVStack amount: 3 - type: entity @@ -71,9 +78,10 @@ name: HV cable crate description: 3 coils of HV cables. components: - - type: StorageFill - contents: - - id: CableHVStack + - type: EntityTableContainerFill + containers: + entity_storage: + id: CableHVStack amount: 3 - type: entity @@ -82,10 +90,11 @@ name: sealant grenade crate description: 5 metal foam sealant grenades. components: - - type: StorageFill - contents: - - id: MetalFoamGrenade - amount: 5 + - type: EntityTableContainerFill + containers: + entity_storage: + id: MetalFoamGrenade + amount: 5 - type: entity id: CrateEngineeringCableBulk @@ -93,14 +102,16 @@ name: bulk cable crate description: 2 coils each for every cable type. components: - - type: StorageFill - contents: - - id: CableHVStack - amount: 2 - - id: CableMVStack - amount: 2 - - id: CableApcStack - amount: 2 + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: CableHVStack + amount: 2 + - id: CableMVStack + amount: 2 + - id: CableApcStack + amount: 2 - type: entity id: CrateEngineeringElectricalSupplies @@ -108,12 +119,14 @@ name: electrical supplies crate description: NT is not responsible for any workplace infighting relating to the insulated gloves included within these crates. components: - - type: StorageFill - contents: - - id: ToolboxElectricalFilled - amount: 2 - - id: ClothingHandsGlovesColorYellow - amount: 2 + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: ToolboxElectricalFilled + amount: 2 + - id: ClothingHandsGlovesColorYellow + amount: 2 - type: entity id: CrateEngineeringStationBeaconBundle @@ -121,10 +134,11 @@ name: station beacon bundle description: A crate containing 5 station beacon assemblies for modifying the station map. components: - - type: StorageFill - contents: - - id: StationBeaconPart - amount: 5 + - type: EntityTableContainerFill + containers: + entity_storage: + id: StationBeaconPart + amount: 5 - type: entity id: CrateEngineeringJetpack @@ -132,9 +146,10 @@ name: jetpack crate description: Two jetpacks for those who don't know how to use fire extinguishers. components: - - type: StorageFill - contents: - - id: JetpackBlue + - type: EntityTableContainerFill + containers: + entity_storage: + id: JetpackBlue amount: 2 - type: entity @@ -143,9 +158,10 @@ name: mini jetpack crate description: Two mini jetpacks for those who want an extra challenge. components: - - type: StorageFill - contents: - - id: JetpackMini + - type: EntityTableContainerFill + containers: + entity_storage: + id: JetpackMini amount: 2 - type: entity @@ -154,12 +170,14 @@ name: airlock kit description: A kit for building 6 airlocks, doesn't include tools. components: - - type: StorageFill - contents: - - id: SheetSteel - - id: CableApcStack - - id: DoorElectronics - amount: 6 + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: SheetSteel + - id: CableApcStack + - id: DoorElectronics + amount: 6 - type: entity id: CrateEvaKit @@ -167,12 +185,14 @@ name: EVA kit description: A set consisting of two prestigious EVA suits and helmets. components: - - type: StorageFill - contents: - - id: ClothingHeadHelmetEVA - amount: 2 - - id: ClothingOuterHardsuitEVA - amount: 2 + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: ClothingHeadHelmetEVA + amount: 2 + - id: ClothingOuterHardsuitEVA + amount: 2 - type: entity id: CrateRCDAmmo @@ -180,10 +200,11 @@ name: compressed matter crate description: Contains three compressed matter cartridges. components: - - type: StorageFill - contents: - - id: RCDAmmo - amount: 3 + - type: EntityTableContainerFill + containers: + entity_storage: + id: RCDAmmo + amount: 3 - type: entity id: CrateRCD @@ -191,9 +212,10 @@ name: RCD crate description: A crate containing a single rapid construction device. components: - - type: StorageFill - contents: - - id: RCD + - type: EntityTableContainerFill + containers: + entity_storage: + id: RCD - type: entity id: CrateParticleDecelerators @@ -201,10 +223,11 @@ name: particle decelerators crate description: A crate containing 3 Particle Decelerators. components: - - type: StorageFill - contents: - - id: WeaponParticleDecelerator - amount: 3 + - type: EntityTableContainerFill + containers: + entity_storage: + id: WeaponParticleDecelerator + amount: 3 - type: entity id: CrateEngineeringSpaceHeater @@ -212,9 +235,10 @@ name: space heater crate description: Contains a space heater for climate control. components: - - type: StorageFill - contents: - - id: SpaceHeaterFlatpack + - type: EntityTableContainerFill + containers: + entity_storage: + id: SpaceHeaterFlatpack - type: entityTable id: RandomTechBoardTable @@ -252,7 +276,8 @@ name: air grenade crate description: A crate containing 3 air grenades. components: - - type: StorageFill - contents: - - id: AirGrenade - amount: 3 + - type: EntityTableContainerFill + containers: + entity_storage: + id: AirGrenade + amount: 3 diff --git a/Resources/Prototypes/Catalog/Fills/Crates/engines.yml b/Resources/Prototypes/Catalog/Fills/Crates/engines.yml index ebff4eb6d8..e81b6135ec 100644 --- a/Resources/Prototypes/Catalog/Fills/Crates/engines.yml +++ b/Resources/Prototypes/Catalog/Fills/Crates/engines.yml @@ -6,9 +6,10 @@ name: packaged antimatter reactor crate description: 9 parts for the main body of an antimatter reactor, or for expanding an existing one. components: - - type: StorageFill - contents: - - id: AmePartFlatpack + - type: EntityTableContainerFill + containers: + entity_storage: + id: AmePartFlatpack amount: 9 - type: entity @@ -17,9 +18,10 @@ name: antimatter containment jar crate description: 3 antimatter jars, for fuelling an antimatter reactor. components: - - type: StorageFill - contents: - - id: AmeJar + - type: EntityTableContainerFill + containers: + entity_storage: + id: AmeJar amount: 3 - type: entity @@ -28,9 +30,10 @@ name: antimatter control unit crate description: The control unit of an antimatter reactor. components: - - type: StorageFill - contents: - - id: AmeControllerUnanchored + - type: EntityTableContainerFill + containers: + entity_storage: + id: AmeControllerUnanchored # Singularity @@ -40,9 +43,10 @@ name: emitter crate description: An emitter, best used for singularity engines. components: - - type: StorageFill - contents: - - id: EmitterFlatpack + - type: EntityTableContainerFill + containers: + entity_storage: + id: EmitterFlatpack - type: entity id: CrateEngineeringSingularityCollector @@ -50,10 +54,12 @@ name: radiation collector crate description: A radiation collector, best used for singularity engines. Plasma is included. components: - - type: StorageFill - contents: - - id: RadiationCollectorFlatpack - - id: PlasmaTankFilled + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: RadiationCollectorFlatpack + - id: PlasmaTankFilled - type: entity id: CrateEngineeringSingularityContainment @@ -61,9 +67,10 @@ name: containment field generator crate description: A containment field generator, keeps the singulo in submission. components: - - type: StorageFill - contents: - - id: ContainmentFieldGeneratorFlatpack + - type: EntityTableContainerFill + containers: + entity_storage: + id: ContainmentFieldGeneratorFlatpack - type: entity id: CrateEngineeringSingularityGenerator @@ -71,9 +78,10 @@ name: singularity generator crate description: A singularity generator, the mother of the beast. components: - - type: StorageFill - contents: - - id: SingularityGeneratorFlatpack + - type: EntityTableContainerFill + containers: + entity_storage: + id: SingularityGeneratorFlatpack # Particle Accelerator @@ -83,15 +91,17 @@ name: PA board crate description: Complex to setup, but rewarding as fuck. Contains boards for all particle accelerator components. components: - - type: StorageFill - contents: - - id: MachineParticleAcceleratorEndCapCircuitboard - - id: MachineParticleAcceleratorEmitterStarboardCircuitboard - - id: MachineParticleAcceleratorEmitterForeCircuitboard - - id: MachineParticleAcceleratorEmitterPortCircuitboard - - id: MachineParticleAcceleratorFuelChamberCircuitboard - - id: MachineParticleAcceleratorPowerBoxCircuitboard - - id: ParticleAcceleratorComputerCircuitboard + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: MachineParticleAcceleratorEndCapCircuitboard + - id: MachineParticleAcceleratorEmitterStarboardCircuitboard + - id: MachineParticleAcceleratorEmitterForeCircuitboard + - id: MachineParticleAcceleratorEmitterPortCircuitboard + - id: MachineParticleAcceleratorFuelChamberCircuitboard + - id: MachineParticleAcceleratorPowerBoxCircuitboard + - id: ParticleAcceleratorComputerCircuitboard # Non-functional for some reason @@ -101,10 +111,10 @@ # description: "Prank the station!" # parent: CrateEngineeringSecure # components: -# - type: StorageFill -# contents: -# - id: Singularity -# amount: 1 +# - type: EntityTableContainerFill +# containers: +# entity_storage: +# id: Singularity - type: entity id: CrateEngineeringGenerator @@ -112,9 +122,10 @@ name: generator crate suffix: DEBUG components: - - type: StorageFill - contents: - - id: DebugGenerator # TODO change to flatpack + - type: EntityTableContainerFill + containers: + entity_storage: + id: DebugGenerator # TODO change to flatpack - type: entity id: CrateEngineeringSolar @@ -122,12 +133,14 @@ name: solar assembly crate description: A kit with solar flatpacks and glass to construct ten solar panels. components: - - type: StorageFill - contents: - - id: SolarAssemblyFlatpack - amount: 10 - - id: SheetGlass10 - amount: 2 + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: SolarAssemblyFlatpack + amount: 10 + - id: SheetGlass10 + amount: 2 - type: entity id: CrateEngineeringShuttle @@ -135,12 +148,14 @@ name: shuttle powering crate description: A crate containing all needs for shuttle powering. components: - - type: StorageFill - contents: - - id: WallmountSubstationElectronics - - id: WallmountGeneratorAPUElectronics - - id: HandheldGPSBasic - - id: InflatableDoorStack1 + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: WallmountSubstationElectronics + - id: WallmountGeneratorAPUElectronics + - id: HandheldGPSBasic + - id: InflatableDoorStack1 - type: entity id: CrateEngineeringTeslaGenerator @@ -148,9 +163,10 @@ name: tesla generator crate description: A tesla generator. God save you. components: - - type: StorageFill - contents: - - id: TeslaGeneratorFlatpack + - type: EntityTableContainerFill + containers: + entity_storage: + id: TeslaGeneratorFlatpack - type: entity id: CrateEngineeringTeslaCoil @@ -158,9 +174,10 @@ name: tesla coil crate description: Tesla coil. Attracts lightning and generates energy from it. components: - - type: StorageFill - contents: - - id: TeslaCoilFlatpack + - type: EntityTableContainerFill + containers: + entity_storage: + id: TeslaCoilFlatpack - type: entity id: CrateEngineeringTeslaGroundingRod @@ -168,6 +185,7 @@ name: tesla grounding rod crate description: Grounding rod, best for lightning protection. components: - - type: StorageFill - contents: - - id: TeslaGroundingRodFlatpack + - type: EntityTableContainerFill + containers: + entity_storage: + id: TeslaGroundingRodFlatpack diff --git a/Resources/Prototypes/Catalog/Fills/Crates/food.yml b/Resources/Prototypes/Catalog/Fills/Crates/food.yml index 31b47e7664..17f07b36b8 100644 --- a/Resources/Prototypes/Catalog/Fills/Crates/food.yml +++ b/Resources/Prototypes/Catalog/Fills/Crates/food.yml @@ -4,13 +4,15 @@ name: emergency pizza delivery description: Help do your part to end station hunger by distributing pizza to underfunded departments! Includes 4 pizzas. components: - - type: StorageFill - contents: - - id: FoodBoxPizzaFilled - amount: 3 - - id: FoodBoxPizzaCotton - - id: LidSalami - prob: 0.01 + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: FoodBoxPizzaFilled + amount: 3 + - id: FoodBoxPizzaCotton + - id: LidSalami + prob: 0.01 - type: entity id: CrateFoodMRE @@ -18,10 +20,11 @@ name: MRE crate description: A military style meal fit to feed a whole department. components: - - type: StorageFill - contents: - - id: BoxMRE - amount: 6 + - type: EntityTableContainerFill + containers: + entity_storage: + id: BoxMRE + amount: 6 - type: entity id: CrateFoodCooking @@ -29,26 +32,27 @@ name: kitchen supplies crate description: Extra kitchen supplies, in case the botanists are absent. components: - - type: StorageFill - contents: - - id: ReagentContainerFlour - amount: 3 - - id: ReagentContainerRice - amount: 3 - - id: FoodBoxCloth - amount: 1 - - id: DrinkMilkCarton - amount: 4 - - id: DrinkSoyMilkCarton - amount: 2 - - id: ReagentContainerSugar - amount: 2 - - id: FoodCondimentPacketSalt - amount: 3 - - id: FoodCondimentBottleEnzyme - amount: 2 - - id: FoodContainerEgg - amount: 2 + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: ReagentContainerFlour + amount: 3 + - id: ReagentContainerRice + amount: 3 + - id: FoodBoxCloth + - id: DrinkMilkCarton + amount: 4 + - id: DrinkSoyMilkCarton + amount: 2 + - id: ReagentContainerSugar + amount: 2 + - id: FoodCondimentPacketSalt + amount: 3 + - id: FoodCondimentBottleEnzyme + amount: 2 + - id: FoodContainerEgg + amount: 2 - type: entity id: CrateFoodDinnerware @@ -56,26 +60,26 @@ name: kitchen dinnerware crate description: Extra kitchen supplies, in case the clown was allowed in the cafeteria unsupervised. components: - - type: StorageFill - contents: - - id: FoodBowlBig - amount: 4 - - id: FoodPlate - amount: 4 - - id: FoodPlateSmall - amount: 4 - - id: FoodKebabSkewer - amount: 4 - - id: KitchenKnife - amount: 1 - - id: DrinkGlass - amount: 4 - - id: FoodPlateMuffinTin - amount: 4 - - id: FoodPlateTin - amount: 4 - - id: BoxUtensil - amount: 1 + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: FoodBowlBig + amount: 4 + - id: FoodPlate + amount: 4 + - id: FoodPlateSmall + amount: 4 + - id: FoodKebabSkewer + amount: 4 + - id: KitchenKnife + - id: DrinkGlass + amount: 4 + - id: FoodPlateMuffinTin + amount: 4 + - id: FoodPlateTin + amount: 4 + - id: BoxUtensil - type: entity id: CrateFoodBarSupply @@ -83,26 +87,28 @@ name: bartending supplies crate description: Extra Bar supplies, in case the clown was allowed in the bar unsupervised. components: - - type: StorageFill - contents: - - id: DrinkGlass - amount: 5 - - id: DrinkShotGlass - amount: 5 - - id: DrinkShaker - amount: 2 - - id: DrinkOrangeJuice - amount: 2 - - id: DrinkLimeJuice - amount: 2 - - id: DrinkTomatoJuice - amount: 2 - - id: DrinkWaterBottleFull - amount: 2 - - id: DrinkSodaWaterCan - amount: 2 - - id: DrinkCreamCarton - amount: 2 + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: DrinkGlass + amount: 5 + - id: DrinkShotGlass + amount: 5 + - id: DrinkShaker + amount: 2 + - id: DrinkOrangeJuice + amount: 2 + - id: DrinkLimeJuice + amount: 2 + - id: DrinkTomatoJuice + amount: 2 + - id: DrinkWaterBottleFull + amount: 2 + - id: DrinkSodaWaterCan + amount: 2 + - id: DrinkCreamCarton + amount: 2 - type: entity id: CrateFoodSoftdrinks @@ -110,22 +116,24 @@ name: softdrinks crate description: A variety of sodas to complement a small party, without having to empty the soda machines. Includes 14 sodas. components: - - type: StorageFill - contents: - - id: DrinkColaCan - amount: 4 - - id: DrinkGrapeCan - amount: 2 - - id: DrinkRootBeerCan - amount: 2 - - id: DrinkIcedTeaCan - amount: 2 - - id: DrinkLemonLimeCan - amount: 2 - - id: DrinkLemonLimeCranberryCan - amount: 2 - - id: DrinkFourteenLokoCan - amount: 2 + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: DrinkColaCan + amount: 4 + - id: DrinkGrapeCan + amount: 2 + - id: DrinkRootBeerCan + amount: 2 + - id: DrinkIcedTeaCan + amount: 2 + - id: DrinkLemonLimeCan + amount: 2 + - id: DrinkLemonLimeCranberryCan + amount: 2 + - id: DrinkFourteenLokoCan + amount: 2 - type: entity id: CrateFoodGetMore @@ -133,26 +141,27 @@ name: Getmore Bakemore crate description: Getmore branded snacks and baking supplies for the creative chef, all without the need of emptying your station's Getmore machines! components: - - type: StorageFill - contents: - - id: FoodSnackRaisins - amount: 4 - - id: FoodSnackChocolate - amount: 6 - - id: FoodSnackPistachios - amount: 4 - - id: ReagentContainerFlour - amount: 3 - - id: ReagentContainerSugar - amount: 2 - - id: FoodCondimentPacketSalt - amount: 3 - - id: DrinkMilkCarton - amount: 2 - - id: FoodContainerEgg - amount: 2 - - id: FoodBoxCloth - amount: 1 + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: FoodSnackRaisins + amount: 4 + - id: FoodSnackChocolate + amount: 6 + - id: FoodSnackPistachios + amount: 4 + - id: ReagentContainerFlour + amount: 3 + - id: ReagentContainerSugar + amount: 2 + - id: FoodCondimentPacketSalt + amount: 3 + - id: DrinkMilkCarton + amount: 2 + - id: FoodContainerEgg + amount: 2 + - id: FoodBoxCloth - type: entity id: CrateFoodIceCream @@ -160,22 +169,24 @@ name: ice cream delivery description: An assortment of ice cream delights for any occasion! Includes 16 frozen treats. components: - - type: StorageFill - contents: - - id: FoodFrozenSandwich - amount: 3 - - id: FoodFrozenSandwichStrawberry - amount: 2 - - id: FoodFrozenPopsicleOrange - amount: 2 - - id: FoodFrozenPopsicleBerry - amount: 2 - - id: FoodFrozenPopsicleJumbo - amount: 3 - - id: FoodFrozenCornuto - amount: 2 - - id: FoodFrozenSundae - amount: 2 + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: FoodFrozenSandwich + amount: 3 + - id: FoodFrozenSandwichStrawberry + amount: 2 + - id: FoodFrozenPopsicleOrange + amount: 2 + - id: FoodFrozenPopsicleBerry + amount: 2 + - id: FoodFrozenPopsicleJumbo + amount: 3 + - id: FoodFrozenCornuto + amount: 2 + - id: FoodFrozenSundae + amount: 2 - type: entity id: CrateFoodSnowcone @@ -183,20 +194,22 @@ name: snowcone delivery description: A freezer packed with refreshing snowcones for a hard working crew, or even a lazy one! Includes 16 snowcones. components: - - type: StorageFill - contents: - - id: FoodFrozenSnowconeBase - amount: 3 - - id: FoodFrozenSnowconeBerry - amount: 3 - - id: FoodFrozenSnowconeFruit - amount: 3 - - id: FoodFrozenSnowconeRainbow - amount: 3 - - id: FoodFrozenSnowconeClown - amount: 2 - - id: FoodFrozenSnowconeMime - amount: 2 + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: FoodFrozenSnowconeBase + amount: 3 + - id: FoodFrozenSnowconeBerry + amount: 3 + - id: FoodFrozenSnowconeFruit + amount: 3 + - id: FoodFrozenSnowconeRainbow + amount: 3 + - id: FoodFrozenSnowconeClown + amount: 2 + - id: FoodFrozenSnowconeMime + amount: 2 - type: entity id: CrateFoodHappyHonkBigBite @@ -204,7 +217,8 @@ name: Happy Honk meal delivery description: Two fully loaded Happy Honk Big Bite burger meals, complete with cheesy fries, a bottle of Space Cola, a slice of apple pie and a toy! components: - - type: StorageFill - contents: - - id: FoodMealHappyHonkBigBite - amount: 2 + - type: EntityTableContainerFill + containers: + entity_storage: + id: FoodMealHappyHonkBigBite + amount: 2 diff --git a/Resources/Prototypes/Catalog/Fills/Crates/fun.yml b/Resources/Prototypes/Catalog/Fills/Crates/fun.yml index 92dbd47cfb..dc7d8f952a 100644 --- a/Resources/Prototypes/Catalog/Fills/Crates/fun.yml +++ b/Resources/Prototypes/Catalog/Fills/Crates/fun.yml @@ -206,15 +206,17 @@ name: variety instrument collection description: Get your sad station movin' and groovin' with this catch-all variety pack! Contains seven different instruments. components: - - type: StorageFill - contents: - - id: SynthesizerInstrument - - id: AcousticGuitarInstrument - - id: TrumpetInstrument - - id: AccordionInstrument - - id: HarmonicaInstrument - - id: RecorderInstrument - - id: GlockenspielInstrument + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: SynthesizerInstrument + - id: AcousticGuitarInstrument + - id: TrumpetInstrument + - id: AccordionInstrument + - id: HarmonicaInstrument + - id: RecorderInstrument + - id: GlockenspielInstrument - type: entity id: CrateFunInstrumentsBrass @@ -222,16 +224,18 @@ name: brass instrument ensemble crate description: Bring some jazz to the station with the brass ensemble. Contains a variety of brass instruments for the whole station to play. components: - - type: StorageFill - contents: - - id: TrumpetInstrument - amount: 2 - - id: TromboneInstrument - amount: 2 - - id: FrenchHornInstrument - amount: 2 - - id: EuphoniumInstrument - - id: TubaInstrument + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: TrumpetInstrument + amount: 2 + - id: TromboneInstrument + amount: 2 + - id: FrenchHornInstrument + amount: 2 + - id: EuphoniumInstrument + - id: TubaInstrument - type: entity id: CrateFunInstrumentsString @@ -239,17 +243,19 @@ name: string instrument ensemble crate description: Pluck or pick, slap or shred! Play a smooth melody or melt peoples' faces with this package of stringed instruments. components: - - type: StorageFill - contents: - - id: AcousticGuitarInstrument - - id: ElectricGuitarInstrument - - id: BassGuitarInstrument - - id: RockGuitarInstrument - - id: BanjoInstrument - - id: ViolinInstrument - - id: CelloInstrument - - id: ViolaInstrument - - id: HarpInstrument + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: AcousticGuitarInstrument + - id: ElectricGuitarInstrument + - id: BassGuitarInstrument + - id: RockGuitarInstrument + - id: BanjoInstrument + - id: ViolinInstrument + - id: CelloInstrument + - id: ViolaInstrument + - id: HarpInstrument - type: entity id: CrateFunInstrumentsWoodwind @@ -257,19 +263,21 @@ name: woodwind instrument ensemble crate description: If atmos is good at their job, use air to play music with these woodwind instruments! Real wood not guaranteed with every item. components: - - type: StorageFill - contents: - - id: RecorderInstrument - amount: 2 - - id: BagpipeInstrument - - id: ClarinetInstrument - - id: FluteInstrument - - id: HarmonicaInstrument - amount: 2 - - id: SaxophoneInstrument - amount: 2 - - id: OcarinaInstrument - - id: PanFluteInstrument + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: RecorderInstrument + amount: 2 + - id: BagpipeInstrument + - id: ClarinetInstrument + - id: FluteInstrument + - id: HarmonicaInstrument + amount: 2 + - id: SaxophoneInstrument + amount: 2 + - id: OcarinaInstrument + - id: PanFluteInstrument - type: entity id: CrateFunInstrumentsKeyedPercussion @@ -277,18 +285,20 @@ name: keyed/percussion instrument ensemble crate description: Hit some keys with some sticks or your hands, with this Keyed and Percussion instrument ensemble crate. components: - - type: StorageFill - contents: - - id: SynthesizerInstrument - amount: 2 - - id: AccordionInstrument - amount: 2 - - id: KalimbaInstrument - amount: 2 - - id: WoodblockInstrument - - id: GlockenspielInstrument - amount: 2 - - id: VibraphoneInstrument + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: SynthesizerInstrument + amount: 2 + - id: AccordionInstrument + amount: 2 + - id: KalimbaInstrument + amount: 2 + - id: WoodblockInstrument + - id: GlockenspielInstrument + amount: 2 + - id: VibraphoneInstrument - type: entity id: CrateFunInstrumentsSpecial @@ -296,18 +306,20 @@ name: special instrument collector's crate description: Create some noise with this special collection of arguably-instruments! Centcomm is not responsible for any trauma caused by the contents. components: - - type: StorageFill - contents: - - id: BikeHornInstrument - - id: MusicBoxInstrument - - id: SeashellInstrument - - id: XylophoneInstrument - - id: GunpetInstrument - - id: MicrophoneInstrument - - id: HelicopterInstrument - - id: BirdToyInstrument - - id: MusicalLungInstrument - - id: ReverseCymbalsInstrument + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: BikeHornInstrument + - id: MusicBoxInstrument + - id: SeashellInstrument + - id: XylophoneInstrument + - id: GunpetInstrument + - id: MicrophoneInstrument + - id: HelicopterInstrument + - id: BirdToyInstrument + - id: MusicalLungInstrument + - id: ReverseCymbalsInstrument - type: entity id: CrateFunInstrumentsRandom @@ -339,9 +351,10 @@ name: art supplies description: Make some happy little accidents with lots of crayons! components: - - type: StorageFill - contents: - - id: CrayonBox + - type: EntityTableContainerFill + containers: + entity_storage: + id: CrayonBox - type: entity id: CrateFunBoardGames @@ -349,21 +362,23 @@ name: board game crate description: Game nights have been proven to either decrease boredom or increase murderous rage depending on the game. components: - - type: StorageFill - contents: - - id: ChessBoard - - id: BackgammonBoard - - id: ParchisBoard - - id: CheckerBoard - - id: ShipBattlemap - - id: SnowBattlemap - - id: SandBattlemap - - id: MoonBattlemap - - id: GrassBattlemap - - id: DiceBag - amount: 6 - - id: PaperCNCSheet - amount: 6 + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: ChessBoard + - id: BackgammonBoard + - id: ParchisBoard + - id: CheckerBoard + - id: ShipBattlemap + - id: SnowBattlemap + - id: SandBattlemap + - id: MoonBattlemap + - id: GrassBattlemap + - id: DiceBag + amount: 6 + - id: PaperCNCSheet + amount: 6 - type: entity id: CrateFunSadTromboneImplants @@ -371,9 +386,10 @@ name: sad trombone implants description: Death's never been so fun before! Implant these to make dying a bit more happy. components: - - type: StorageFill - contents: - - id: SadTromboneImplanter + - type: EntityTableContainerFill + containers: + entity_storage: + id: SadTromboneImplanter amount: 3 - type: entity @@ -382,9 +398,10 @@ name: light implants description: Light up your skin with these implants! components: - - type: StorageFill - contents: - - id: LightImplanter + - type: EntityTableContainerFill + containers: + entity_storage: + id: LightImplanter amount: 3 - type: entity @@ -393,30 +410,32 @@ name: party crate description: An entire party just waiting for you to open it. Includes party favors, party beverages, and even a cake. components: - - type: StorageFill - contents: - - id: GlowstickBase - amount: 2 - - id: GlowstickBlue - amount: 2 - - id: GlowstickPurple - amount: 2 - - id: GlowstickRed - amount: 2 - - id: GlowstickYellow - amount: 2 - - id: FoodCakeBirthday - - id: DrinkLean - amount: 4 - - id: KnifePlastic - - id: ClothingHeadHatPartyRed - amount: 2 - - id: ClothingHeadHatPartyYellow - amount: 2 - - id: ClothingHeadHatPartyGreen - amount: 2 - - id: ClothingHeadHatPartyBlue - amount: 2 + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: GlowstickBase + amount: 2 + - id: GlowstickBlue + amount: 2 + - id: GlowstickPurple + amount: 2 + - id: GlowstickRed + amount: 2 + - id: GlowstickYellow + amount: 2 + - id: FoodCakeBirthday + - id: DrinkLean + amount: 4 + - id: KnifePlastic + - id: ClothingHeadHatPartyRed + amount: 2 + - id: ClothingHeadHatPartyYellow + amount: 2 + - id: ClothingHeadHatPartyGreen + amount: 2 + - id: ClothingHeadHatPartyBlue + amount: 2 - type: entity id: CrateFunWaterGuns @@ -424,12 +443,14 @@ name: water gun crate description: A summer special with a variety of brightly colored water guns. Water not included. components: - - type: StorageFill - contents: - - id: WeaponWaterBlaster - amount: 2 - - id: WeaponWaterPistol - amount: 4 + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: WeaponWaterBlaster + amount: 2 + - id: WeaponWaterPistol + amount: 4 - type: entity id: CrateFunFoamGuns @@ -437,14 +458,16 @@ name: Foam Force crate description: Contains four Foam Force rifles, some grenades, and extra ammo. It's [REDACTED] or nothing! components: - - type: StorageFill - contents: - - id: WeaponRifleFoam - amount: 4 - - id: BoxDonkSoftBox - amount: 2 - - id: GrenadeFoamDart - amount: 4 + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: WeaponRifleFoam + amount: 4 + - id: BoxDonkSoftBox + amount: 2 + - id: GrenadeFoamDart + amount: 4 - type: entity id: CrateFunBoxing @@ -452,60 +475,66 @@ name: boxing crate description: Want to set up an underground fight club or host a tournament amongst station crew? This crate is for you! components: - - type: StorageFill - contents: - - id: ClothingHandsGlovesBoxingRed - - id: ClothingHandsGlovesBoxingBlue - - id: ClothingHandsGlovesBoxingYellow - - id: ClothingHandsGlovesBoxingGreen - - id: UniformShortsRed - amount: 3 - - id: UniformShortsRedWithTop - amount: 3 + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: ClothingHandsGlovesBoxingRed + - id: ClothingHandsGlovesBoxingBlue + - id: ClothingHandsGlovesBoxingYellow + - id: ClothingHandsGlovesBoxingGreen + - id: UniformShortsRed + amount: 3 + - id: UniformShortsRedWithTop + amount: 3 - type: entity id: CrateFunPirate parent: CratePirate suffix: Filled components: - - type: StorageFill - contents: - - id: ClothingUniformJumpsuitPirate - amount: 2 - - id: ClothingHeadHatPirate - - id: ClothingOuterCoatPirate - - id: ClothingShoesBootsLaceup - amount: 2 - - id: ClothingHeadBandRed - - id: FoamCutlass - amount: 2 + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: ClothingUniformJumpsuitPirate + amount: 2 + - id: ClothingHeadHatPirate + - id: ClothingOuterCoatPirate + - id: ClothingShoesBootsLaceup + amount: 2 + - id: ClothingHeadBandRed + - id: FoamCutlass + amount: 2 - type: entity id: CrateFunToyBox parent: CrateToyBox suffix: Filled components: - - type: StorageFill - contents: - - id: SnapPopBox - - id: CrazyGlue - - id: CrazyLube - - id: PlasticBanana - - id: WhoopieCushion - - id: ToyHammer - - id: MrChips - orGroup: GiftPool - - id: MrDips - orGroup: Giftpool - - id: RevolverCapGun - - id: BalloonNT - - id: ClothingShoesClownLarge - - id: ClothingHeadHatMagician - - id: BeachBall - - id: TennisBall - amount: 2 - - id: ClothingShoesSkates - - id: RubberChicken + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: SnapPopBox + - id: CrazyGlue + - id: CrazyLube + - id: PlasticBanana + - id: WhoopieCushion + - id: ToyHammer + - !type:GroupSelector + children: + - id: MrChips + - id: MrDips + - id: RevolverCapGun + - id: BalloonNT + - id: ClothingShoesClownLarge + - id: ClothingHeadHatMagician + - id: BeachBall + - id: TennisBall + amount: 2 + - id: ClothingShoesSkates + - id: RubberChicken - type: entity id: CrateFunBikeHornImplants @@ -513,9 +542,10 @@ name: bike horn implants description: A thousand honks a day keeps security officers away! components: - - type: StorageFill - contents: - - id: BikeHornImplanter + - type: EntityTableContainerFill + containers: + entity_storage: + id: BikeHornImplanter amount: 3 - type: entity @@ -524,13 +554,15 @@ name: mystery figure crate description: A collection of 10 Mystery Figurine boxes. Duplicates non refundable. components: - - type: StorageFill - contents: - - id: MysteryFigureBox - amount: 10 - - id: MysteryFigureBox - amount: 15 - prob: 0.05 + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: MysteryFigureBox + amount: 10 + - id: MysteryFigureBox + amount: 15 + prob: 0.05 - type: entity name: dartboard box set @@ -538,15 +570,15 @@ id: CrateFunDartsSet parent: CratePlastic components: - - type: StorageFill - contents: - - id: TargetDarts - amount: 1 - - id: BoxDarts - amount: 2 - - id: BoxDarts - amount: 1 - prob: 0.05 + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: TargetDarts + - id: BoxDarts + amount: 2 + - id: BoxDarts + prob: 0.05 - type: entity name: hydrated scurret @@ -554,16 +586,18 @@ id: CrateFunScurret parent: CrateLivestock components: - - type: StorageFill - contents: - - id: MobEmotionalSupportScurret # How? Why? - - id: DrinkVodkaBottleFull - - id: DrinkWhiskeyBottleFull - - id: DrinkTequilaBottleFull # ...that explains it. - - id: DrinkShotGlass - amount: 2 - - id: Spear # self defence - - id: ClothingHeadHatHardhatYellow - - id: ClothingNeckMantleQM - - id: ClothingHeadsetCargo + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: MobEmotionalSupportScurret # How? Why? + - id: DrinkVodkaBottleFull + - id: DrinkWhiskeyBottleFull + - id: DrinkTequilaBottleFull # ...that explains it. + - id: DrinkShotGlass + amount: 2 + - id: Spear # self defence + - id: ClothingHeadHatHardhatYellow + - id: ClothingNeckMantleQM + - id: ClothingHeadsetCargo diff --git a/Resources/Prototypes/Catalog/Fills/Crates/materials.yml b/Resources/Prototypes/Catalog/Fills/Crates/materials.yml index 6c604ddc1a..cb8a690f2b 100644 --- a/Resources/Prototypes/Catalog/Fills/Crates/materials.yml +++ b/Resources/Prototypes/Catalog/Fills/Crates/materials.yml @@ -4,9 +4,10 @@ name: glass sheet crate description: 90 sheets of glass, packed with care. components: - - type: StorageFill - contents: - - id: SheetGlass + - type: EntityTableContainerFill + containers: + entity_storage: + id: SheetGlass amount: 3 - type: entity @@ -15,9 +16,10 @@ name: steel sheet crate description: 90 sheets of steel. components: - - type: StorageFill - contents: - - id: SheetSteel + - type: EntityTableContainerFill + containers: + entity_storage: + id: SheetSteel amount: 3 - type: entity @@ -26,11 +28,13 @@ name: textiles crate description: 60 pieces of cloth and 30 pieces of durathread. components: - - type: StorageFill - contents: - - id: MaterialCloth - amount: 2 - - id: MaterialDurathread + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: MaterialCloth + amount: 2 + - id: MaterialDurathread - type: entity id: CrateMaterialPlastic @@ -38,9 +42,10 @@ name: plastic sheet crate description: 90 sheets of plastic. components: - - type: StorageFill - contents: - - id: SheetPlastic + - type: EntityTableContainerFill + containers: + entity_storage: + id: SheetPlastic amount: 3 - type: entity @@ -49,9 +54,10 @@ name: wood crate description: Bunch of wood planks. components: - - type: StorageFill - contents: - - id: MaterialWoodPlank + - type: EntityTableContainerFill + containers: + entity_storage: + id: MaterialWoodPlank - type: entity id: CrateMaterialBrass @@ -59,9 +65,10 @@ name: brass crate description: 90 sheets of brass. components: - - type: StorageFill - contents: - - id: SheetBrass + - type: EntityTableContainerFill + containers: + entity_storage: + id: SheetBrass amount: 3 - type: entity @@ -70,9 +77,10 @@ name: plasteel crate description: 30 sheets of plasteel. components: - - type: StorageFill - contents: - - id: SheetPlasteel + - type: EntityTableContainerFill + containers: + entity_storage: + id: SheetPlasteel - type: entity id: CrateMaterialPlasma @@ -80,9 +88,10 @@ name: solid plasma crate description: 30 sheets of plasma. components: - - type: StorageFill - contents: - - id: SheetPlasma + - type: EntityTableContainerFill + containers: + entity_storage: + id: SheetPlasma - type: entity id: CrateMaterialGold @@ -90,9 +99,10 @@ name: gold crate description: 30 bars of gold. components: - - type: StorageFill - contents: - - id: IngotGold + - type: EntityTableContainerFill + containers: + entity_storage: + id: IngotGold - type: entity id: CrateMaterialSilver @@ -100,9 +110,10 @@ name: silver crate description: 30 bars of silver. components: - - type: StorageFill - contents: - - id: IngotSilver + - type: EntityTableContainerFill + containers: + entity_storage: + id: IngotSilver - type: entity id: CrateMaterialCardboard @@ -110,9 +121,10 @@ name: cardboard crate description: 90 pieces of cardboard. components: - - type: StorageFill - contents: - - id: MaterialCardboard + - type: EntityTableContainerFill + containers: + entity_storage: + id: MaterialCardboard amount: 3 - type: entity @@ -121,9 +133,10 @@ name: paper crate description: 90 sheets of paper. components: - - type: StorageFill - contents: - - id: SheetPaper + - type: EntityTableContainerFill + containers: + entity_storage: + id: SheetPaper amount: 3 - type: entityTable @@ -176,15 +189,17 @@ name: material silo crate description: A package including all the materials to create a material silo. components: - - type: StorageFill - contents: - - id: MaterialSiloMachineCircuitboard - - id: SheetSteel1 - amount: 5 - - id: MicroManipulatorStockPart - amount: 4 - - id: CableApcStack1 - amount: 2 + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: MaterialSiloMachineCircuitboard + - id: SheetSteel1 + amount: 5 + - id: MicroManipulatorStockPart + amount: 4 + - id: CableApcStack1 + amount: 2 - type: entity id: CrateMaterialBasicResource @@ -192,28 +207,30 @@ name: basic sheet crate description: 30 sheets of steel, glass, and plastic. components: - - type: StorageFill - contents: - - id: SheetSteel - - id: SheetGlass - - id: SheetPlastic + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: SheetSteel + - id: SheetGlass + - id: SheetPlastic #- type: entity # id: CrateMaterialHFuelTank # name: fueltank crate # parent: CrateGenericSteel # components: -# - type: StorageFill -# contents: -# - id: WeldingFuelTank -# amount: 1 +# - type: EntityTableContainerFill +# containers: +# entity_storage: +# id: WeldingFuelTank #- type: entity # id: CrateMaterialHWaterTank # name: watertank crate # parent: CrateGenericSteel # components: -# - type: StorageFill -# contents: -# - id: WaterTankFull -# amount: 1 +# - type: EntityTableContainerFill +# containers: +# entity_storage: +# id: WaterTankFull diff --git a/Resources/Prototypes/Catalog/Fills/Crates/medical.yml b/Resources/Prototypes/Catalog/Fills/Crates/medical.yml index fe04f72899..d8a98fe5e9 100644 --- a/Resources/Prototypes/Catalog/Fills/Crates/medical.yml +++ b/Resources/Prototypes/Catalog/Fills/Crates/medical.yml @@ -4,17 +4,19 @@ name: medical supplies crate description: Basic medical supplies. components: - - type: StorageFill - contents: - - id: MedkitFilled - amount: 2 - - id: Gauze - amount: 2 - - id: Bloodpack - amount: 2 - - id: BoxLatexGloves - - id: BoxSterileMask - - id: BoxMouthSwab + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: MedkitFilled + amount: 2 + - id: Gauze + amount: 2 + - id: Bloodpack + amount: 2 + - id: BoxLatexGloves + - id: BoxSterileMask + - id: BoxMouthSwab - type: entity id: CrateChemistrySupplies @@ -22,15 +24,17 @@ name: chemistry supplies crate description: Basic chemistry supplies. components: - - type: StorageFill - contents: - - id: BoxSyringe - - id: BoxBeaker - - id: BoxPillCanister - - id: Dropper - amount: 2 - - id: BoxBottle - amount: 2 + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: BoxSyringe + - id: BoxBeaker + - id: BoxPillCanister + - id: Dropper + amount: 2 + - id: BoxBottle + amount: 2 - type: entity id: CrateChemistryVials @@ -38,9 +42,10 @@ name: vial supply crate description: Crate filled with a box of vials. components: - - type: StorageFill - contents: - - id: BoxVial + - type: EntityTableContainerFill + containers: + entity_storage: + id: BoxVial - type: entity id: CrateMindShieldImplants @@ -48,9 +53,10 @@ name: MindShield implant crate description: Crate filled with 3 MindShield implants. components: - - type: StorageFill - contents: - - id: MindShieldImplanter + - type: EntityTableContainerFill + containers: + entity_storage: + id: MindShieldImplanter amount: 3 - type: entity @@ -59,15 +65,17 @@ name: surgical supplies crate description: Surgical instruments. components: - - type: StorageFill - contents: - - id: Scalpel - - id: Retractor - - id: Cautery - - id: Drill - - id: Saw - - id: Hemostat - - id: ClothingMaskSterile + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: Scalpel + - id: Retractor + - id: Cautery + - id: Drill + - id: Saw + - id: Hemostat + - id: ClothingMaskSterile - type: entity id: CrateMedicalScrubs @@ -75,16 +83,18 @@ name: medical scrubs crate description: Medical clothings. components: - - type: StorageFill - contents: - - id: UniformScrubsColorGreen - - id: UniformScrubsColorPurple - - id: UniformScrubsColorBlue - - id: ClothingHeadHatSurgcapBlue - - id: ClothingHeadHatSurgcapPurple - - id: ClothingHeadHatSurgcapGreen - - id: ClothingMaskSterile - amount: 3 + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: UniformScrubsColorGreen + - id: UniformScrubsColorPurple + - id: UniformScrubsColorBlue + - id: ClothingHeadHatSurgcapBlue + - id: ClothingHeadHatSurgcapPurple + - id: ClothingHeadHatSurgcapGreen + - id: ClothingMaskSterile + amount: 3 - type: entity id: CrateEmergencyBurnKit @@ -92,9 +102,10 @@ name: emergency burn kit description: Crate filled with a burn treatment kit. components: - - type: StorageFill - contents: - - id: MedkitBurnFilled + - type: EntityTableContainerFill + containers: + entity_storage: + id: MedkitBurnFilled - type: entity id: CrateEmergencyToxinKit @@ -102,9 +113,10 @@ name: emergency toxin kit description: Crate filled with a toxin treatment kit. components: - - type: StorageFill - contents: - - id: MedkitToxinFilled + - type: EntityTableContainerFill + containers: + entity_storage: + id: MedkitToxinFilled - type: entity id: CrateEmergencyO2Kit @@ -112,9 +124,10 @@ name: emergency O2 kit description: Crate filled with an O2 treatment kit. components: - - type: StorageFill - contents: - - id: MedkitOxygenFilled + - type: EntityTableContainerFill + containers: + entity_storage: + id: MedkitOxygenFilled - type: entity id: CrateEmergencyBruteKit @@ -122,9 +135,10 @@ name: emergency brute kit description: Crate filled with a brute treatment kit. components: - - type: StorageFill - contents: - - id: MedkitBruteFilled + - type: EntityTableContainerFill + containers: + entity_storage: + id: MedkitBruteFilled - type: entity id: CrateEmergencyAdvancedKit @@ -132,9 +146,10 @@ name: emergency advanced kit description: Crate filled with an advanced treatment kit. components: - - type: StorageFill - contents: - - id: MedkitAdvancedFilled + - type: EntityTableContainerFill + containers: + entity_storage: + id: MedkitAdvancedFilled - type: entity id: CrateEmergencyRadiationKit @@ -142,9 +157,10 @@ name: emergency radiation kit description: Crate filled with a radiation treatment kit. components: - - type: StorageFill - contents: - - id: MedkitRadiationFilled + - type: EntityTableContainerFill + containers: + entity_storage: + id: MedkitRadiationFilled - type: entity id: CrateBodyBags @@ -152,9 +168,10 @@ name: body bags crate description: Contains ten body bags. components: - - type: StorageFill - contents: - - id: BoxBodyBag + - type: EntityTableContainerFill + containers: + entity_storage: + id: BoxBodyBag amount: 2 - type: entity @@ -163,11 +180,12 @@ name: virology bio suit crate description: Contains 2 biohazard suits to ensure that no disease will distract you from treating the crew. Requires Medical access to open. components: - - type: StorageFill - contents: - - id: ClothingOuterBioVirology - amount: 2 - - id: ClothingHeadHatHoodBioVirology - amount: 2 - - id: ClothingMaskSterile - amount: 2 + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - !type:NestedSelector + tableId: FillBiohazardGearVirology + rolls: 2 + - id: ClothingMaskSterile + amount: 2 diff --git a/Resources/Prototypes/Catalog/Fills/Crates/npc.yml b/Resources/Prototypes/Catalog/Fills/Crates/npc.yml index 403eb1a01d..625a890d8b 100644 --- a/Resources/Prototypes/Catalog/Fills/Crates/npc.yml +++ b/Resources/Prototypes/Catalog/Fills/Crates/npc.yml @@ -4,9 +4,10 @@ name: crate of bees description: A crate containing a swarm of eight bees. components: - - type: StorageFill - contents: - - id: MobBee + - type: EntityTableContainerFill + containers: + entity_storage: + id: MobBee amount: 8 - type: entity @@ -15,9 +16,10 @@ name: crate of butterflies description: A crate containing five butterflies. components: - - type: StorageFill - contents: - - id: MobButterfly + - type: EntityTableContainerFill + containers: + entity_storage: + id: MobButterfly amount: 5 - type: entity @@ -26,23 +28,18 @@ name: cat crate description: A crate containing a single cat. components: - - type: StorageFill - contents: - - id: MobCat - prob: 1 - orGroup: MobCat - - id: MobCatCalico - prob: 1 - orGroup: MobCat - - id: MobCatCaracal - prob: 0.5 - orGroup: MobCat - - id: MobCatKitten - prob: 0.25 - orGroup: MobCat - - id: MobBingus - prob: 0.005 - orGroup: MobCat + - type: EntityTableContainerFill + containers: + entity_storage: !type:GroupSelector + children: + - id: MobCat + - id: MobCatCalico + - id: MobCatCaracal + weight: 0.5 + - id: MobCatKitten + weight: 0.25 + - id: MobBingus + weight: 0.005 - type: entity id: CrateNPCChicken @@ -50,9 +47,10 @@ name: chicken crate description: A crate containing four fully grown chickens. components: - - type: StorageFill - contents: - - id: MobChicken + - type: EntityTableContainerFill + containers: + entity_storage: + id: MobChicken amount: 4 - type: entity @@ -61,9 +59,10 @@ name: crab crate description: A crate containing three huge crabs. components: - - type: StorageFill - contents: - - id: MobCrab + - type: EntityTableContainerFill + containers: + entity_storage: + id: MobCrab amount: 3 - type: entity @@ -72,14 +71,14 @@ name: duck crate description: A crate containing six fully grown ducks. components: - - type: StorageFill - contents: - - id: MobDuckMallard - amount: 1 - - id: MobDuckBrown - amount: 1 - - id: MobDuckWhite - amount: 2 + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: MobDuckMallard + - id: MobDuckBrown + - id: MobDuckWhite + amount: 2 - type: entity id: CrateNPCCorgi @@ -87,9 +86,10 @@ name: corgi crate description: A crate containing a single corgi. components: - - type: StorageFill - contents: - - id: MobCorgi + - type: EntityTableContainerFill + containers: + entity_storage: + id: MobCorgi - type: entity id: CrateNPCPuppyCorgi @@ -97,9 +97,10 @@ name: puppy corgi crate description: A crate containing a single puppy corgi. Awww. components: - - type: StorageFill - contents: - - id: MobCorgiPuppy + - type: EntityTableContainerFill + containers: + entity_storage: + id: MobCorgiPuppy - type: entity id: CrateNPCCow @@ -107,9 +108,10 @@ name: cow crate description: A crate containing a single cow. components: - - type: StorageFill - contents: - - id: MobCow + - type: EntityTableContainerFill + containers: + entity_storage: + id: MobCow - type: entity id: CrateNPCGoat @@ -117,9 +119,10 @@ name: goat crate description: A crate containing a single goat. components: - - type: StorageFill - contents: - - id: MobGoat + - type: EntityTableContainerFill + containers: + entity_storage: + id: MobGoat - type: entity id: CrateNPCGoose @@ -127,9 +130,10 @@ name: goose crate description: A crate containing two geese. components: - - type: StorageFill - contents: - - id: MobGoose + - type: EntityTableContainerFill + containers: + entity_storage: + id: MobGoose amount: 2 - type: entity @@ -138,9 +142,10 @@ name: gorilla crate description: A crate containing a single gorilla. components: - - type: StorageFill - contents: - - id: MobGorilla + - type: EntityTableContainerFill + containers: + entity_storage: + id: MobGorilla - type: entity id: CrateNPCMonkeyCube @@ -148,9 +153,10 @@ name: monkey cube crate description: A crate containing single box of monkey cubes. components: - - type: StorageFill - contents: - - id: MonkeyCubeBox + - type: EntityTableContainerFill + containers: + entity_storage: + id: MonkeyCubeBox - type: entity id: CrateNPCKoboldCube @@ -158,9 +164,10 @@ name: kobold cube crate description: A crate containing single box of kobold cubes. components: - - type: StorageFill - contents: - - id: KoboldCubeBox + - type: EntityTableContainerFill + containers: + entity_storage: + id: KoboldCubeBox - type: entity id: CrateNPCMouse @@ -168,9 +175,10 @@ name: mice crate description: A crate containing five mice. components: - - type: StorageFill - contents: - - id: MobMouse + - type: EntityTableContainerFill + containers: + entity_storage: + id: MobMouse amount: 5 - type: entity @@ -179,9 +187,10 @@ name: parrot crate description: A crate containing three parrots. components: - - type: StorageFill - contents: - - id: MobParrot + - type: EntityTableContainerFill + containers: + entity_storage: + id: MobParrot amount: 3 - type: entity @@ -190,9 +199,10 @@ name: penguin crate description: A crate containing two penguins. components: - - type: StorageFill - contents: - - id: MobPenguin + - type: EntityTableContainerFill + containers: + entity_storage: + id: MobPenguin amount: 2 - type: entity @@ -201,9 +211,10 @@ name: pig crate description: A crate containing a single pig. components: - - type: StorageFill - contents: - - id: MobPig + - type: EntityTableContainerFill + containers: + entity_storage: + id: MobPig - type: entity id: CrateNPCSnake @@ -211,9 +222,10 @@ name: snake crate description: A crate containing three snakes. components: - - type: StorageFill - contents: - - id: MobSnake + - type: EntityTableContainerFill + containers: + entity_storage: + id: MobSnake amount: 3 - type: entity @@ -221,23 +233,23 @@ parent: CrateRodentCage suffix: Filled components: - - type: StorageFill - contents: - - id: MobHamster + - type: EntityTableContainerFill + containers: + entity_storage: + id: MobHamster - type: entity id: CrateNPCHamlet parent: CrateRodentCage suffix: Hamlet components: - - type: StorageFill - contents: - - id: MobHamsterHamlet - prob: 1 - orGroup: MobHamsterHamlet - - id: MobHamsterHamletSlippery - prob: 0.001 - orGroup: MobHamsterHamlet + - type: EntityTableContainerFill + containers: + entity_storage: !type:GroupSelector + children: + - id: MobHamsterHamlet + - id: MobHamsterHamletSlippery + weight: 0.001 - type: entity id: CrateNPCLizard @@ -245,9 +257,10 @@ name: lizard crate description: A crate containing a lizard. components: - - type: StorageFill - contents: - - id: MobLizard + - type: EntityTableContainerFill + containers: + entity_storage: + id: MobLizard - type: entity id: CrateNPCKangaroo @@ -255,9 +268,10 @@ name: kangaroo crate description: A crate containing a kangaroo. components: - - type: StorageFill - contents: - - id: MobKangaroo + - type: EntityTableContainerFill + containers: + entity_storage: + id: MobKangaroo - type: entity id: CrateNPCMothroach @@ -265,7 +279,8 @@ name: crate of mothroaches description: A crate containing four mothroaches. components: - - type: StorageFill - contents: - - id: MobMothroach + - type: EntityTableContainerFill + containers: + entity_storage: + id: MobMothroach amount: 4 diff --git a/Resources/Prototypes/Catalog/Fills/Crates/permaescape.yml b/Resources/Prototypes/Catalog/Fills/Crates/permaescape.yml index ed48479cd2..cb28e09804 100644 --- a/Resources/Prototypes/Catalog/Fills/Crates/permaescape.yml +++ b/Resources/Prototypes/Catalog/Fills/Crates/permaescape.yml @@ -37,197 +37,178 @@ parent: CrateGenericSteel suffix: Digging components: - - type: StorageFill - contents: - - 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: 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 id: CratePermaEscapeEVA parent: CrateGenericSteel suffix: EVAs components: - - type: StorageFill - contents: - - 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: 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 id: CratePermaEscapeGun parent: CrateGenericSteel suffix: Gun components: - - type: StorageFill - contents: - - id: WeaponPistolMk58 - prob: 0.15 - orGroup: gun - - id: FoamCrossbow - prob: 0.10 - orGroup: gun - - id: WeaponRifleFoam - prob: 0.05 - orGroup: gun - - id: WeaponPistolFlintlock - prob: 0.20 - orGroup: gun - - id: WeaponShotgunBlunderbuss - prob: 0.10 - orGroup: gun - - id: WeaponShotgunBlunderbuss - prob: 0.15 - orGroup: gun - - id: WeaponRevolverPirate - prob: 0.15 - orGroup: gun - - id: WeaponProtoKineticAccelerator - prob: 0.20 - orGroup: gun + - 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 id: CratePermaEscapeBureaucracy parent: CrateGenericSteel suffix: Writing components: - - type: StorageFill - contents: - - id: RubberStampApproved - - id: RubberStampDenied - - id: Paper - amount: 5 - - id: Pen - amount: 3 - - id: BoxFolderBaseEmpty - orGroup: folderA - - id: BoxFolderBlackEmpty - orGroup: folderA - - id: BoxFolderBlueEmpty - orGroup: folderA - - id: BoxFolderGreenEmpty - orGroup: folderA - - id: BoxFolderGreyEmpty - orGroup: folderA - - id: BoxFolderRedEmpty - orGroup: folderA - - id: BoxFolderYellowEmpty - orGroup: folderA - - id: BoxFolderBaseEmpty - orGroup: folderB - - id: BoxFolderBlackEmpty - orGroup: folderB - - id: BoxFolderBlueEmpty - orGroup: folderB - - id: BoxFolderGreenEmpty - orGroup: folderB - - id: BoxFolderGreyEmpty - orGroup: folderB - - id: BoxFolderRedEmpty - orGroup: folderB - - id: BoxFolderYellowEmpty - orGroup: folderB - - id: CrayonBox - prob: 0.50 - - id: CrayonBox - prob: 0.10 - - id: ClearPDA # change to visitor one day. - prob: 0.10 - - id: PersonalAI + - 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 id: CratePermaEscapeLights parent: CrateGenericSteel suffix: Glowsticks components: - - type: StorageFill - contents: - - id: GlowstickBlue - prob: 0.50 - - id: GlowstickBlue - prob: 0.20 - - id: GlowstickBlue - prob: 0.05 - - id: GlowstickBase - prob: 0.50 - - id: GlowstickBase - prob: 0.20 - - id: GlowstickBase - 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: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: GlowstickBlue + prob: 0.50 + - id: GlowstickBlue + prob: 0.20 + - id: GlowstickBlue + prob: 0.05 + - id: GlowstickBase + prob: 0.50 + - id: GlowstickBase + prob: 0.20 + - id: GlowstickBase + 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 id: CratePermaEscapeMats parent: CrateGenericSteel suffix: Mats components: - - type: StorageFill - contents: - - id: SheetSteel - orGroup: matA - - id: PartRodMetal - orGroup: matA - - id: SheetSteel - orGroup: matB - - id: PartRodMetal - orGroup: matB + - type: EntityTableContainerFill + containers: + entity_storage: !type:GroupSelector + rolls: 2 + children: + - id: SheetSteel + - id: PartRodMetal - type: entity id: CratePermaEscapeGiftsFromSyndicate parent: CrateGenericSteel suffix: Syndi Gifts components: - - type: StorageFill - contents: - - id: ClothingEyesGlassesOutlawGlasses - - id: ClothingHeadHatOutlawHat - - id: HappyHonkNukieSnacks + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: ClothingEyesGlassesOutlawGlasses + - id: ClothingHeadHatOutlawHat + - id: HappyHonkNukieSnacks # - id: BaseUplinkRadio # too spicy I think. # prob: 0.50 # - id: Telecrystal @@ -248,37 +229,35 @@ # prob: 0.01 # - id: Telecrystal5 # prob: 0.01 - - id: CyberPen - prob: 0.10 - - id: CockroachCube - orGroup: cube - - id: AbominationCube - prob: 0.20 - orGroup: cube - - id: SpaceCarpCube - prob: 0.20 - orGroup: cube - - id: SyndicateSponge - prob: 0.20 - orGroup: cube - - 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 + - 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 @@ -286,84 +265,84 @@ parent: CrateGenericSteel suffix: Merc components: - - type: StorageFill - contents: - - 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: 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 id: CratePermaEscapeComs parent: CrateGenericSteel suffix: Coms components: - - type: StorageFill - contents: - - id: ClothingHeadsetMining - orGroup: coms - - id: ClothingHeadsetMining - orGroup: coms - - id: ClothingHeadsetMining - orGroup: coms - - id: ClothingHeadsetGrey - orGroup: coms - - id: ClothingHeadsetScience - orGroup: coms - - id: ClothingHeadsetService - orGroup: coms - - id: ClothingHeadsetEngineering - orGroup: coms - - id: ClothingHeadsetMedical - orGroup: coms - - 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: 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 id: CratePermaEscapeTowercap parent: CrateGenericSteel suffix: Towercap components: - - type: StorageFill - contents: - - 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 + - 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 diff --git a/Resources/Prototypes/Catalog/Fills/Crates/salvage.yml b/Resources/Prototypes/Catalog/Fills/Crates/salvage.yml index 020fc71a8c..6bfd0019de 100644 --- a/Resources/Prototypes/Catalog/Fills/Crates/salvage.yml +++ b/Resources/Prototypes/Catalog/Fills/Crates/salvage.yml @@ -5,23 +5,25 @@ suffix: Filled parent: CrateGenericSteel components: - - type: StorageFill - contents: - - id: ClothingOuterHardsuitSalvage - - id: ClothingMaskBreath - - id: OxygenTankFilled - - id: FireExtinguisher - - id: ClothingShoesBootsMag - - id: HandHeldMassScanner - - id: Pickaxe - - id: Welder - - id: Wrench - - id: Screwdriver - - id: Crowbar - - id: Wirecutter - - id: ClothingBeltUtility - - id: OreBag - - id: ClothingBeltSalvageWebbing + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: ClothingOuterHardsuitSalvage + - id: ClothingMaskBreath + - id: OxygenTankFilled + - id: FireExtinguisher + - id: ClothingShoesBootsMag + - id: HandHeldMassScanner + - id: Pickaxe + - id: Welder + - id: Wrench + - id: Screwdriver + - id: Crowbar + - id: Wirecutter + - id: ClothingBeltUtility + - id: OreBag + - id: ClothingBeltSalvageWebbing - type: entity id: CrateSalvageAssortedGoodies @@ -29,66 +31,68 @@ categories: [ HideSpawnMenu ] # You should use SalvageMaterialCrateSpawner instead parent: CrateGenericSteel components: - - type: StorageFill - contents: - # Normal (10%) - - id: OxygenTankFilled - prob: 0.1 - - id: SheetPlasma - prob: 0.1 - - id: IngotGold - prob: 0.1 - - id: IngotSilver - prob: 0.1 - - id: SheetPlasma - prob: 0.1 - - id: WelderIndustrialAdvanced - prob: 0.1 - - id: ResearchDisk - prob: 0.1 - - id: SheetUranium - prob: 0.1 - # - Service - - id: CrayonBox - prob: 0.1 - # - Medical - - id: MedkitFilled - prob: 0.1 - - id: BoxSyringe - prob: 0.1 - - id: BoxBeaker - prob: 0.1 - # - Heh - - id: SalvageHumanCorpse - prob: 0.1 - # Interesting (1%) - # - Ammo - - id: MagazineBoxMagnum - prob: 0.01 - - id: ResearchDisk10000 - prob: 0.01 - # Just no (0.1%) - # - Working guns - - id: WeaponRevolverDeckard - prob: 0.001 - - id: WeaponRevolverInspector - prob: 0.001 - - id: ClothingShoesBootsMagBlinding - prob: 0.001 - # - Skub - - id: Skub - prob: 0.001 - - id: ClothingHeadHatCatEars - prob: 0.01 - - id: ClothingHeadHatDogEars - prob: 0.01 - # TRAITOR EQUIPMENT (0.01%) - - id: Telecrystal10 - prob: 0.0001 - - id: WeaponRevolverPython - prob: 0.0001 - - id: WeaponRevolverMateba - prob: 0.0001 + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + # Normal (10%) + - id: OxygenTankFilled + prob: 0.1 + - id: SheetPlasma + prob: 0.1 + - id: IngotGold + prob: 0.1 + - id: IngotSilver + prob: 0.1 + - id: SheetPlasma + prob: 0.1 + - id: WelderIndustrialAdvanced + prob: 0.1 + - id: ResearchDisk + prob: 0.1 + - id: SheetUranium + prob: 0.1 + # - Service + - id: CrayonBox + prob: 0.1 + # - Medical + - id: MedkitFilled + prob: 0.1 + - id: BoxSyringe + prob: 0.1 + - id: BoxBeaker + prob: 0.1 + # - Heh + - id: SalvageHumanCorpse + prob: 0.1 + # Interesting (1%) + # - Ammo + - id: MagazineBoxMagnum + prob: 0.01 + - id: ResearchDisk10000 + prob: 0.01 + # Just no (0.1%) + # - Working guns + - id: WeaponRevolverDeckard + prob: 0.001 + - id: WeaponRevolverInspector + prob: 0.001 + - id: ClothingShoesBootsMagBlinding + prob: 0.001 + # - Skub + - id: Skub + prob: 0.001 + - id: ClothingHeadHatCatEars + prob: 0.01 + - id: ClothingHeadHatDogEars + prob: 0.01 + # TRAITOR EQUIPMENT (0.01%) + - id: Telecrystal10 + prob: 0.0001 + - id: WeaponRevolverPython + prob: 0.0001 + - id: WeaponRevolverMateba + prob: 0.0001 - type: entity parent: CrateGenericSteel @@ -210,10 +214,11 @@ description: Contains 5 random tier 3 parts for upgrading machines. # TODO add contents. #components: - #- type: StorageFill - # contents: - # - id: SalvagePartsT3Spawner - # amount: 5 + #- type: EntityTableContainerFill + # containers: + # entity_storage: !type:AllSelector + # id: SalvagePartsT3Spawner + # amount: 5 - type: entity parent: CrateGenericSteel @@ -222,10 +227,11 @@ description: Contains 5 random tier 3 or 4 parts for upgrading machines. # TODO add contents. #components: - # type: StorageFill - # contents: - # - id: SalvagePartsT3T4Spawner - # amount: 5 + #- type: EntityTableContainerFill + # containers: + # entity_storage: + # id: SalvagePartsT3T4Spawner + # amount: 5 - type: entity parent: CrateGenericSteel @@ -234,7 +240,8 @@ description: Contains 5 random tier 4 parts for upgrading machines. # TODO add contents. #components: - #- type: StorageFill - # contents: - # - id: SalvagePartsT4Spawner - # amount: 5 + #- type: EntityTableContainerFill + # containers: + # entity_storage: + # id: SalvagePartsT4Spawner + # amount: 5 diff --git a/Resources/Prototypes/Catalog/Fills/Crates/science.yml b/Resources/Prototypes/Catalog/Fills/Crates/science.yml index 0338962956..1a5bd028ad 100644 --- a/Resources/Prototypes/Catalog/Fills/Crates/science.yml +++ b/Resources/Prototypes/Catalog/Fills/Crates/science.yml @@ -4,14 +4,15 @@ name: scientist bio suit crate description: Contains 2 biohazard suits to ensure that no disease will distract you from doing science. Requires Science access to open. components: - - type: StorageFill - contents: - - id: ClothingOuterBioScientist - amount: 2 - - id: ClothingHeadHatHoodBioScientist - amount: 2 - - id: ClothingMaskSterile - amount: 2 + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - !type:NestedSelector + tableId: FillBiohazardGearScience + rolls: 2 + - id: ClothingMaskSterile + amount: 2 - type: entity id: CrateCrewMonitoring @@ -19,11 +20,13 @@ name: crew monitoring crate description: Contains a flatpack of a crew monitoring server and a few crew monitoring computers. Requires Science access to open. components: - - type: StorageFill - contents: - - id: CrewMonitoringServerFlatpack - - id: CrewMonitoringComputerFlatpack - amount: 3 + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: CrewMonitoringServerFlatpack + - id: CrewMonitoringComputerFlatpack + amount: 3 - type: entity id: CrateStationAiCore @@ -31,13 +34,14 @@ name: station AI core crate description: Contains the components for constructing a station AI core. Positronic brain not included. Requires Science access to open. components: - - type: StorageFill - contents: - - id: StationAiCoreElectronics - - id: Intellicard - - id: SheetPlasteel1 - amount: 4 - - id: CableApcStack1 - amount: 1 - - id: SheetRGlass1 - amount: 2 + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: StationAiCoreElectronics + - id: Intellicard + - id: SheetPlasteel1 + amount: 4 + - id: CableApcStack1 + - id: SheetRGlass1 + amount: 2 diff --git a/Resources/Prototypes/Catalog/Fills/Crates/security.yml b/Resources/Prototypes/Catalog/Fills/Crates/security.yml index 0af4fe338f..a254749e6a 100644 --- a/Resources/Prototypes/Catalog/Fills/Crates/security.yml +++ b/Resources/Prototypes/Catalog/Fills/Crates/security.yml @@ -4,9 +4,10 @@ name: armor crate description: Contains three bulletproof vests. Requires Security access to open. components: - - type: StorageFill - contents: - - id: ClothingOuterArmorBulletproof + - type: EntityTableContainerFill + containers: + entity_storage: + id: ClothingOuterArmorBulletproof amount: 3 - type: entity @@ -15,9 +16,10 @@ name: helmet crate description: Contains three standard-issue brain buckets. Requires Security access to open. components: - - type: StorageFill - contents: - - id: ClothingHeadHelmetBasic + - type: EntityTableContainerFill + containers: + entity_storage: + id: ClothingHeadHelmetBasic amount: 3 - type: entity @@ -26,17 +28,19 @@ name: nonlethals crate description: Contains a mix of disablers, stun batons, and flashes. Requires Security access to open. components: - - type: StorageFill - contents: - - id: WeaponDisabler - amount: 3 - - id: Stunbaton - amount: 3 - - id: BoxFlashbang - - id: Flash - amount: 3 -# - Pepperspray -# - GrenadeTeargas + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: WeaponDisabler + amount: 3 + - id: Stunbaton + amount: 3 + - id: BoxFlashbang + - id: Flash + amount: 3 +# - Pepperspray +# - GrenadeTeargas - type: entity id: CrateSecuritySupplies @@ -44,13 +48,15 @@ name: security supplies crate description: Contains various supplies for the station's Security team. Requires Security access to open. components: - - type: StorageFill - contents: - - id: BoxHandcuff - - id: BoxSechud -# - SecBelt -# - SecGasmask -# - SpacelawBook + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: BoxHandcuff + - id: BoxSechud +# - SecBelt +# - SecGasmask +# - SpacelawBook - type: entity id: CrateRestraints @@ -58,12 +64,14 @@ name: restraints crate description: Contains two boxes each of handcuffs and zipties. Requires Security access to open. components: - - type: StorageFill - contents: - - id: BoxHandcuff - amount: 2 - - id: BoxZiptie - amount: 2 + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: BoxHandcuff + amount: 2 + - id: BoxZiptie + amount: 2 - type: entity id: CrateSecurityBiosuit @@ -71,14 +79,15 @@ name: security bio suit crate description: Contains 2 biohazard suits to ensure that no disease will distract you from your duties. Requires Security access to open. components: - - type: StorageFill - contents: - - id: ClothingOuterBioSecurity - amount: 2 - - id: ClothingHeadHatHoodBioSecurity - amount: 2 - - id: ClothingMaskSterile - amount: 2 + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - !type:NestedSelector + tableId: FillBiohazardGearSecurity + rolls: 2 + - id: ClothingMaskSterile + amount: 2 - type: entity id: CrateSecurityTrackingMindshieldImplants @@ -86,12 +95,14 @@ description: Contains 4 MindShield implants and 4 tracking implant. Requires Security access to open. parent: CrateSecgear components: - - type: StorageFill - contents: - - id: MindShieldImplanter - amount: 4 - - id: TrackingImplanter - amount: 4 + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: MindShieldImplanter + amount: 4 + - id: TrackingImplanter + amount: 4 - type: entity parent: CrateSecgear @@ -99,13 +110,12 @@ name: nonlethal throwables crate description: Contains one box each of flashbangs, stingers, tear gas grenades, and four bolas. Requires Security access to open. components: - - type: StorageFill - contents: - - id: BoxFlashbang - amount: 1 - - id: BoxStinger - amount: 1 - - id: BoxTearGas - amount: 1 - - id: Bola # replace with 4 e-bolas when added - amount: 4 + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: BoxFlashbang + - id: BoxStinger + - id: BoxTearGas + - id: Bola # replace with 4 e-bolas when added + amount: 4 diff --git a/Resources/Prototypes/Catalog/Fills/Crates/service.yml b/Resources/Prototypes/Catalog/Fills/Crates/service.yml index c80944a9c3..cfe3b316c5 100644 --- a/Resources/Prototypes/Catalog/Fills/Crates/service.yml +++ b/Resources/Prototypes/Catalog/Fills/Crates/service.yml @@ -4,24 +4,26 @@ name: janitorial supplies crate description: Fight back against dirt and grime with Nanotrasen's Janitorial Essentials(tm)! Contains three buckets, caution signs, and cleaner grenades. Also has a single mop, broom, spray cleaner, wire brush, rag, and trash bag. components: - - type: StorageFill - contents: - - id: MopItem - - id: MopBucketCubeWrapped - - id: Bucket - amount: 3 - - id: WetFloorSign - amount: 2 - - id: Soap - - id: SprayBottleSpaceCleaner - amount: 2 - - id: TrashBag - amount: 2 - - id: Plunger - amount: 2 - - id: BoxCleanerGrenades - - id: WireBrush - amount: 2 + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: MopItem + - id: MopBucketCubeWrapped + - id: Bucket + amount: 3 + - id: WetFloorSign + amount: 2 + - id: Soap + - id: SprayBottleSpaceCleaner + amount: 2 + - id: TrashBag + amount: 2 + - id: Plunger + amount: 2 + - id: BoxCleanerGrenades + - id: WireBrush + amount: 2 - type: entity id: CrateServiceCleanerGrenades @@ -29,9 +31,10 @@ name: bulk cleanades crate description: Contains two boxes of cleaner grenades, for those deeply-entrenched stains. components: - - type: StorageFill - contents: - - id: BoxCleanerGrenades + - type: EntityTableContainerFill + containers: + entity_storage: + id: BoxCleanerGrenades amount: 2 - type: entity @@ -40,10 +43,12 @@ name: replacement lights crate description: May the light of Aether shine upon this station! Or at least, the light of forty two light tubes and twenty one light bulbs. components: - - type: StorageFill - contents: - - id: BoxLighttube - - id: BoxLightbulb + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: BoxLighttube + - id: BoxLightbulb - type: entity id: CrateServiceHolidayLights @@ -51,10 +56,11 @@ name: holiday lights crate description: Deck the halls with these festive holiday lights! components: - - type: StorageFill - contents: - - id: BoxLighttubeHoliday - - id: BoxLighttubeHoliday + - type: EntityTableContainerFill + containers: + entity_storage: + id: BoxLighttubeHoliday + amount: 2 - type: entity id: CrateMousetrapBoxes @@ -62,9 +68,10 @@ name: mousetraps crate description: Mousetraps, for when all of service is being haunted by an entire horde of rats. Use sparingly... or not. components: - - type: StorageFill - contents: - - id: BoxMousetrap + - type: EntityTableContainerFill + containers: + entity_storage: + id: BoxMousetrap - type: entity id: CrateServiceSmokeables @@ -72,25 +79,27 @@ name: smokeables crate description: Tired of a quick death on the station? Order this crate and chain-smoke your way to a coughy demise! components: - - type: StorageFill - contents: - - id: CigCartonGreen - prob: 0.50 - orGroup: CigCarton1 - - id: CigCartonRed - orGroup: CigCarton1 - - id: CigCartonBlue - prob: 0.50 - orGroup: CigCarton2 - - id: CigCartonBlack - orGroup: CigCarton2 - - id: CigarGoldCase - prob: 0.05 - orGroup: Cigars - - id: CigarCase - orGroup: Cigars - - id: Matchbox - amount: 2 + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - !type:GroupSelector + children: + - id: CigCartonGreen + weight: 0.50 + - id: CigCartonRed + - !type:GroupSelector + children: + - id: CigCartonBlue + weight: 0.50 + - id: CigCartonBlack + - !type:GroupSelector + children: + - id: CigarGoldCase + weight: 0.05 + - id: CigarCase + - id: Matchbox + amount: 2 - type: entity id: CrateServiceTheatre @@ -98,26 +107,28 @@ name: theatrical performances crate description: Contains a moth cloak, barber scissors, maid uniform, clown and mime attributes, and other performance charms. components: - - type: StorageFill - contents: - - id: ClothingUniformJumpskirtPerformer - - id: ClothingShoesBootsPerformer - - id: ClothingHeadPerformerWig - - id: ClothingOuterSuitMonkey - - id: ClothingHeadHatAnimalMonkey - - id: ClothingNeckCloakMoth - - id: ClothingMaskClown - - id: ClothingMaskMime - - id: ClothingShoesClown - - id: ClothingUniformJumpskirtJanimaid - - id: ClothingNeckCloakVoid - - id: RevolverCapGun - - id: BarberScissors - - id: ClothingUniformJumpskirtOldDress - - id: BikeHorn - - id: ClownRecorder - - id: ClothingBeltSuspendersRed - - id: ClothingBeltSuspendersBlack + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: ClothingUniformJumpskirtPerformer + - id: ClothingShoesBootsPerformer + - id: ClothingHeadPerformerWig + - id: ClothingOuterSuitMonkey + - id: ClothingHeadHatAnimalMonkey + - id: ClothingNeckCloakMoth + - id: ClothingMaskClown + - id: ClothingMaskMime + - id: ClothingShoesClown + - id: ClothingUniformJumpskirtJanimaid + - id: ClothingNeckCloakVoid + - id: RevolverCapGun + - id: BarberScissors + - id: ClothingUniformJumpskirtOldDress + - id: BikeHorn + - id: ClownRecorder + - id: ClothingBeltSuspendersRed + - id: ClothingBeltSuspendersBlack - type: entity id: CrateServiceCustomSmokable @@ -125,15 +136,17 @@ name: DIY smokeables crate description: Want to get a little creative with what you use to destroy your lungs? Then this crate is for you! Has everything you need to roll your own cigarettes. components: - - type: StorageFill - contents: - - id: PackPaperRolling - - id: CigaretteFilter - amount: 8 - - id: GroundTobacco - amount: 4 - - id: SmokingPipe - - id: Matchbox + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: PackPaperRolling + - id: CigaretteFilter + amount: 8 + - id: GroundTobacco + amount: 4 + - id: SmokingPipe + - id: Matchbox - type: entity id: CrateServiceBureaucracy @@ -141,23 +154,25 @@ name: bureaucracy crate description: Several stacks of paper, a few pens and an office toy. What more could you ask for? components: - - type: StorageFill - contents: - - id: Paper - amount: 12 - - id: PaperOffice - amount: 6 - - id: Pen - amount: 2 - - id: BoxFolderClipboardEmpty - amount: 2 - - id: HandLabeler - - id: BoxFolderBlueEmpty - - id: BoxFolderRedEmpty - - id: BoxFolderYellowEmpty - - id: NewtonCradle - - id: BoxEnvelope - - id: BrbSign + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: Paper + amount: 12 + - id: PaperOffice + amount: 6 + - id: Pen + amount: 2 + - id: BoxFolderClipboardEmpty + amount: 2 + - id: HandLabeler + - id: BoxFolderBlueEmpty + - id: BoxFolderRedEmpty + - id: BoxFolderYellowEmpty + - id: NewtonCradle + - id: BoxEnvelope + - id: BrbSign - type: entity id: CrateServiceFaxMachine @@ -165,10 +180,12 @@ name: fax machine crate description: A fax machine and a screwdriver to set the name with. components: - - type: StorageFill - contents: - - id: Screwdriver - - id: FaxMachineFlatpack + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: Screwdriver + - id: FaxMachineFlatpack - type: entity id: CrateServicePersonnel @@ -176,10 +193,12 @@ name: personnel crate description: Contains a box of blank ID cards and PDAs. components: - - type: StorageFill - contents: - - id: BoxPDA - - id: BoxID + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: BoxPDA + - id: BoxID - type: entity id: CrateServiceBooks @@ -187,10 +206,11 @@ name: books crate description: Contains 10 empty books of random appearance. components: - - type: StorageFill - contents: - - id: BookRandom - amount: 10 + - type: EntityTableContainerFill + containers: + entity_storage: + id: BookRandom + amount: 10 - type: entity id: CrateServiceGuidebooks @@ -198,22 +218,24 @@ name: guidebooks crate description: Contains guidebooks. components: - - type: StorageFill - contents: - - id: BookSpaceEncyclopedia - - id: BookTheBookOfControl - - id: BookBartendersManual - - id: BookHowToCookForFortySpaceman - - id: BookLeafLoversSecret - - id: BookEngineersHandbook - - id: BookScientistsGuidebook - - id: BookSecurity - - id: BookHowToKeepStationClean - - id: BookHowToRockAndStone - - id: BookMedicalReferenceBook - - id: BookHowToSurvive - - id: BookChemicalCompendium - - id: BookSpaceLaw + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: BookSpaceEncyclopedia + - id: BookTheBookOfControl + - id: BookBartendersManual + - id: BookHowToCookForFortySpaceman + - id: BookLeafLoversSecret + - id: BookEngineersHandbook + - id: BookScientistsGuidebook + - id: BookSecurity + - id: BookHowToKeepStationClean + - id: BookHowToRockAndStone + - id: BookMedicalReferenceBook + - id: BookHowToSurvive + - id: BookChemicalCompendium + - id: BookSpaceLaw - type: entity id: CrateServiceSodaDispenser @@ -221,26 +243,28 @@ name: soda dispenser refill crate description: Contains refills for soda dispensers. components: - - type: StorageFill - contents: - - id: DrinkCoffeeJug - - id: DrinkColaBottleFull - - id: DrinkCreamCartonXL - - id: DrinkDrGibbJug - - id: DrinkEnergyDrinkJug - - id: DrinkGreenTeaJug - - id: DrinkIceJug - - id: DrinkJuiceLimeCartonXL - - id: DrinkJuiceOrangeCartonXL - - id: DrinkLemonLimeJug - - id: DrinkRootBeerJug - - id: DrinkSodaWaterBottleFull - - id: DrinkSpaceMountainWindBottleFull - - id: DrinkSpaceUpBottleFull - - id: DrinkSugarJug - - id: DrinkTeaJug - - id: DrinkTonicWaterBottleFull - - id: DrinkWaterMelonJuiceJug + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: DrinkCoffeeJug + - id: DrinkColaBottleFull + - id: DrinkCreamCartonXL + - id: DrinkDrGibbJug + - id: DrinkEnergyDrinkJug + - id: DrinkGreenTeaJug + - id: DrinkIceJug + - id: DrinkJuiceLimeCartonXL + - id: DrinkJuiceOrangeCartonXL + - id: DrinkLemonLimeJug + - id: DrinkRootBeerJug + - id: DrinkSodaWaterBottleFull + - id: DrinkSpaceMountainWindBottleFull + - id: DrinkSpaceUpBottleFull + - id: DrinkSugarJug + - id: DrinkTeaJug + - id: DrinkTonicWaterBottleFull + - id: DrinkWaterMelonJuiceJug - type: entity id: CrateServiceBoozeDispenser @@ -248,20 +272,22 @@ name: booze dispenser refill crate description: Contains refills for booze dispensers. components: - - type: StorageFill - contents: - - id: DrinkAleBottleFullGrowler - - id: DrinkBeerGrowler - - id: DrinkCoffeeLiqueurBottleFull - - id: DrinkCognacBottleFull - - id: DrinkGinBottleFull - - id: DrinkMeadJug - - id: DrinkRumBottleFull - - id: DrinkTequilaBottleFull - - id: DrinkVermouthBottleFull - - id: DrinkVodkaBottleFull - - id: DrinkWhiskeyBottleFull - - id: DrinkWineBottleFull + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: DrinkAleBottleFullGrowler + - id: DrinkBeerGrowler + - id: DrinkCoffeeLiqueurBottleFull + - id: DrinkCognacBottleFull + - id: DrinkGinBottleFull + - id: DrinkMeadJug + - id: DrinkRumBottleFull + - id: DrinkTequilaBottleFull + - id: DrinkVermouthBottleFull + - id: DrinkVodkaBottleFull + - id: DrinkWhiskeyBottleFull + - id: DrinkWineBottleFull - type: entity id: CrateServiceBox @@ -269,10 +295,11 @@ name: boxes crate description: Contains 6 empty multipurpose boxes. components: - - type: StorageFill - contents: - - id: BoxCardboard - amount: 6 + - type: EntityTableContainerFill + containers: + entity_storage: + id: BoxCardboard + amount: 6 - type: entity id: CrateJanitorBiosuit @@ -280,22 +307,25 @@ name: janitor bio suit crate description: Contains 2 biohazard suits to ensure that no disease will distract you from cleaning. components: - - type: StorageFill - contents: - - id: ClothingOuterBioJanitor - amount: 2 - - id: ClothingHeadHatHoodBioJanitor - amount: 2 - - id: ClothingMaskSterile - amount: 2 + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - !type:NestedSelector + tableId: FillBiohazardGearJanitor + rolls: 2 + - id: ClothingMaskSterile + amount: 2 - type: entity id: CrateTrashCartFilled suffix: Filled parent: CrateTrashCart components: - - type: StorageFill - contents: + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: # Creatures - id: MobCockroach prob: 0.05 @@ -370,12 +400,14 @@ name: candles crate description: Contains 4 boxes of candles, 2 large and 2 small. For atmosphere or something. components: - - type: StorageFill - contents: - - id: BoxCandle - amount: 2 - - id: BoxCandleSmall - amount: 2 + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: BoxCandle + amount: 2 + - id: BoxCandleSmall + amount: 2 - type: entity parent: CrateGenericSteel @@ -383,7 +415,9 @@ name: colorful lights crate description: It's not a party until it's hard to see, a little disorienting, and your ears hurt. components: - - type: StorageFill - contents: - - id: BoxLightbulbColorfulMixed - - id: BoxLighttubeColorfulMixed + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: BoxLightbulbColorfulMixed + - id: BoxLighttubeColorfulMixed diff --git a/Resources/Prototypes/Catalog/Fills/Crates/shuttle.yml b/Resources/Prototypes/Catalog/Fills/Crates/shuttle.yml index 389bf0a7e4..8651b7c265 100644 --- a/Resources/Prototypes/Catalog/Fills/Crates/shuttle.yml +++ b/Resources/Prototypes/Catalog/Fills/Crates/shuttle.yml @@ -4,9 +4,10 @@ name: thruster crate description: Contains a thruster flatpack. components: - - type: StorageFill - contents: - - id: ThrusterFlatpack + - type: EntityTableContainerFill + containers: + entity_storage: + id: ThrusterFlatpack - type: entity parent: CrateEngineering @@ -14,6 +15,7 @@ name: gyroscope crate description: Contains a gyroscope flatpack. components: - - type: StorageFill - contents: - - id: GyroscopeFlatpack + - type: EntityTableContainerFill + containers: + entity_storage: + id: GyroscopeFlatpack diff --git a/Resources/Prototypes/Catalog/Fills/Crates/syndicate.yml b/Resources/Prototypes/Catalog/Fills/Crates/syndicate.yml index 1b191d90f7..4e48f6cc47 100644 --- a/Resources/Prototypes/Catalog/Fills/Crates/syndicate.yml +++ b/Resources/Prototypes/Catalog/Fills/Crates/syndicate.yml @@ -14,13 +14,13 @@ name: Cybersun juggernaut bundle description: Contains everything except a big gun to go postal. components: - - type: StorageFill - contents: - - id: ClothingOuterHardsuitJuggernaut - - id: ClothingMaskGasSyndicate - - id: ClothingHandsGlovesCombat - - id: DoubleEmergencyOxygenTankFilled - - id: DoubleEmergencyNitrogenTankFilled + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - id: ClothingOuterHardsuitJuggernaut + - !type:NestedSelector + tableId: SyndicateHardsuitExtrasEntityTable - type: entity id: CrateSyndicateSuperSurplusBundle diff --git a/Resources/Prototypes/Catalog/Fills/Items/belt.yml b/Resources/Prototypes/Catalog/Fills/Items/belt.yml index 5da3df71c0..f9ef85554b 100644 --- a/Resources/Prototypes/Catalog/Fills/Items/belt.yml +++ b/Resources/Prototypes/Catalog/Fills/Items/belt.yml @@ -3,43 +3,49 @@ parent: ClothingBeltUtility suffix: Filled components: - - type: StorageFill - contents: - - id: Crowbar - - id: Wrench - - id: Screwdriver - - id: Wirecutter - - id: Welder - - id: NetworkConfigurator + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: Crowbar + - id: Wrench + - id: Screwdriver + - id: Wirecutter + - id: Welder + - id: NetworkConfigurator - type: entity id: ClothingBeltUtilityEngineering parent: ClothingBeltUtility suffix: Engineering components: - - type: StorageFill - contents: - - id: CrowbarYellow - - id: Wrench - - id: Screwdriver - - id: Wirecutter - - id: Welder - - id: Multitool + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: CrowbarYellow + - id: Wrench + - id: Screwdriver + - id: Wirecutter + - id: Welder + - id: Multitool - type: entity id: ClothingBeltChiefEngineerFilled parent: ClothingBeltChiefEngineer suffix: Filled components: - - type: StorageFill - contents: - - id: PowerDrill - - id: JawsOfLife - - id: WelderExperimental - - id: Multitool - - id: HolofanProjector - - id: GasAnalyzer - - id: trayScanner + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: PowerDrill + - id: JawsOfLife + - id: WelderExperimental + - id: Multitool + - id: HolofanProjector + - id: GasAnalyzer + - id: trayScanner - type: entityTable id: BeltSecurityEntityTable @@ -47,7 +53,7 @@ children: - id: Stunbaton - id: Handcuffs - - id: Handcuffs + amount: 2 - id: HoloprojectorSecurity - id: RadioHandheldSecurity @@ -76,57 +82,63 @@ parent: ClothingBeltJanitor suffix: Filled components: - - type: StorageFill - contents: - - id: Soap #Make a soap group and pick between when i'm not lazy - - id: SprayBottleSpaceCleaner - - id: CleanerGrenade - amount: 2 - - id: FlashlightLantern - - id: LightReplacer - - id: WireBrush + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: Soap #Make a soap group and pick between when i'm not lazy + - id: SprayBottleSpaceCleaner + - id: CleanerGrenade + amount: 2 + - id: FlashlightLantern + - id: LightReplacer + - id: WireBrush - type: entity id: ClothingBeltMedicalFilled parent: ClothingBeltMedical suffix: Filled components: - - type: StorageFill - contents: - - id: Brutepack - amount: 2 - - id: Ointment - amount: 1 - - id: Bloodpack - amount: 1 - - id: Gauze - - id: EmergencyMedipen #You never know what people are going to latejoin into + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: Brutepack + amount: 2 + - id: Ointment + - id: Bloodpack + - id: Gauze + - id: EmergencyMedipen #You never know what people are going to latejoin into - type: entity id: ClothingBeltMedicalEMTFilled parent: ClothingBeltMedicalEMT suffix: Paramedic,Filled components: - - type: StorageFill - contents: - - id: Brutepack - - id: Ointment - - id: Bloodpack - - id: Gauze - - id: EmergencyMedipen #You never know what people are going to latejoin into - amount: 3 + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: Brutepack + - id: Ointment + - id: Bloodpack + - id: Gauze + - id: EmergencyMedipen #You never know what people are going to latejoin into + amount: 3 - type: entity id: ClothingBeltPlantFilled parent: ClothingBeltPlant suffix: Filled components: - - type: StorageFill - contents: - - id: HydroponicsToolMiniHoe - - id: HydroponicsToolSpade - - id: HydroponicsToolClippers - - id: ChemistryBottleRobustHarvest + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: HydroponicsToolMiniHoe + - id: HydroponicsToolSpade + - id: HydroponicsToolClippers + - id: ChemistryBottleRobustHarvest - type: entity id: ClothingBeltSheathFilled @@ -150,48 +162,56 @@ maxItemSize: Normal grid: - 0,0,7,1 - - type: StorageFill - contents: - - id: ExGrenade - amount: 4 - - id: SyndieMiniBomb - amount: 2 - - id: EmpGrenade - amount: 2 + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: ExGrenade + amount: 4 + - id: SyndieMiniBomb + amount: 2 + - id: EmpGrenade + amount: 2 - type: entity id: ClothingBeltMilitaryWebbingMedFilled parent: ClothingBeltMilitaryWebbingMed suffix: Filled components: - - type: StorageFill - contents: - - id: ChemistryBottleEpinephrine - amount: 2 - - id: ChemistryBottleEphedrine - amount: 2 - - id: ChemistryBottleOmnizine - - id: MedkitCombatFilled + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: ChemistryBottleEpinephrine + amount: 2 + - id: ChemistryBottleEphedrine + amount: 2 + - id: ChemistryBottleOmnizine + - id: MedkitCombatFilled - type: entity parent: ClothingBeltWand id: ClothingBeltWandFilled suffix: Filled components: - - type: StorageFill - contents: - - id: WeaponWandPolymorphCarp - - id: WeaponWandFireball - - id: WeaponWandDeath - - id: WeaponWandPolymorphDoor + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: WeaponWandPolymorphCarp + - id: WeaponWandFireball + - id: WeaponWandDeath + - id: WeaponWandPolymorphDoor - type: entity id: ClothingBeltHolsterFilled parent: ClothingBeltHolster suffix: Filled components: - - type: StorageFill - contents: + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: - id: WeaponRevolverInspector - id: SpeedLoaderMagnum @@ -200,7 +220,9 @@ parent: ClothingBeltChef suffix: Filled components: - - type: StorageFill - contents: - - id: FoodShakerSalt - - id: FoodShakerPepper + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: FoodShakerSalt + - id: FoodShakerPepper diff --git a/Resources/Prototypes/Catalog/Fills/Items/briefcases.yml b/Resources/Prototypes/Catalog/Fills/Items/briefcases.yml index 6764cb8496..9da3f0b519 100644 --- a/Resources/Prototypes/Catalog/Fills/Items/briefcases.yml +++ b/Resources/Prototypes/Catalog/Fills/Items/briefcases.yml @@ -3,9 +3,10 @@ parent: BriefcaseBrown suffix: Filled, Paper components: - - type: StorageFill - contents: - - id: Paper + - type: EntityTableContainerFill + containers: + storagebase: + id: Paper amount: 3 - type: entity @@ -19,43 +20,47 @@ maxItemSize: Huge grid: - 0,0,6,3 - - type: StorageFill - contents: - - id: WeaponSniperHristov - - id: MagazineBoxAntiMateriel - - id: ClothingNeckTieRed - - id: ClothingHandsGlovesLatex - - id: ClothingUniformJumpsuitLawyerBlack - - id: BarberScissors + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: WeaponSniperHristov + - id: MagazineBoxAntiMateriel + - id: ClothingNeckTieRed + - id: ClothingHandsGlovesLatex + - id: ClothingUniformJumpsuitLawyerBlack + - id: BarberScissors - type: entity id: BriefcaseSyndieLobbyingBundleFilled parent: BriefcaseSyndie suffix: Syndicate, Spesos components: - - type: StorageFill - contents: - - id: ClothingEyesGlassesSunglasses - - id: SpaceCash30000 - amount: 1 - - id: EncryptionKeySyndie - - id: RubberStampTrader - - id: PhoneInstrumentSyndicate - - id: ClothingUniformJumpsuitTacticool - - id: ClothingOuterCoatJensen - - id: ClothingHandsGlovesCombat - - id: ClothingMaskNeckGaiter - - id: SyndieHandyFlag + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: ClothingEyesGlassesSunglasses + - id: SpaceCash30000 + - id: EncryptionKeySyndie + - id: RubberStampTrader + - id: PhoneInstrumentSyndicate + - id: ClothingUniformJumpsuitTacticool + - id: ClothingOuterCoatJensen + - id: ClothingHandsGlovesCombat + - id: ClothingMaskNeckGaiter + - id: SyndieHandyFlag - type: entity id: BriefcaseThiefBribingBundleFilled parent: BriefcaseSyndie suffix: Thief, Spesos components: - - type: StorageFill - contents: - - id: ClothingEyesGlassesSunglasses - - id: SpaceCash20000 - amount: 1 - - id: ClothingOuterCoatJensen - - id: ClothingHandsGlovesColorBlack + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: ClothingEyesGlassesSunglasses + - id: SpaceCash20000 + - id: ClothingOuterCoatJensen + - id: ClothingHandsGlovesColorBlack diff --git a/Resources/Prototypes/Catalog/Fills/Items/firstaidkits.yml b/Resources/Prototypes/Catalog/Fills/Items/firstaidkits.yml index 7da375d582..68dd317988 100644 --- a/Resources/Prototypes/Catalog/Fills/Items/firstaidkits.yml +++ b/Resources/Prototypes/Catalog/Fills/Items/firstaidkits.yml @@ -4,12 +4,14 @@ suffix: Filled parent: Medkit components: - - type: StorageFill - contents: - - id: Brutepack - - id: Ointment - - id: Gauze - - id: PillCanisterTricordrazine + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: Brutepack + - id: Ointment + - id: Gauze + - id: PillCanisterTricordrazine # see https://github.com/tgstation/blob/master/code/game/objects/items/storage/firstaid.dm for example contents - type: entity @@ -17,95 +19,110 @@ suffix: Filled parent: MedkitBurn components: - - type: StorageFill - contents: - - id: Ointment - amount: 2 - - id: PillCanisterKelotane - - id: PillCanisterDermaline + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: Ointment + amount: 2 + - id: PillCanisterKelotane + - id: PillCanisterDermaline - type: entity id: MedkitBruteFilled suffix: Filled parent: MedkitBrute components: - - type: StorageFill - contents: - - id: Brutepack - - id: Gauze - - id: PillCanisterIron - - id: PillCanisterCopper + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: Brutepack + - id: Gauze + - id: PillCanisterIron + - id: PillCanisterCopper - type: entity id: MedkitToxinFilled suffix: Filled parent: MedkitToxin components: - - type: StorageFill - contents: - - id: SyringeIpecac - - id: SyringeEthylredoxrazine - - id: AntiPoisonMedipen - - id: PillCanisterDylovene - - id: PillCanisterCharcoal + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: SyringeIpecac + - id: SyringeEthylredoxrazine + - id: AntiPoisonMedipen + - id: PillCanisterDylovene + - id: PillCanisterCharcoal - type: entity id: MedkitOxygenFilled suffix: Filled parent: MedkitO2 components: - - type: StorageFill - contents: - - id: ClothingMaskBreathMedical - - id: EmergencyOxygenTankFilled - - id: EmergencyMedipen - - id: SyringeInaprovaline - - id: PillCanisterDexalin + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: ClothingMaskBreathMedical + - id: EmergencyOxygenTankFilled + - id: EmergencyMedipen + - id: SyringeInaprovaline + - id: PillCanisterDexalin - type: entity id: MedkitRadiationFilled suffix: Filled parent: MedkitRadiation components: - - type: StorageFill - contents: - - id: SyringePhalanximine - - id: RadAutoInjector - - id: PillCanisterPotassiumIodide - - id: PillCanisterHyronalin + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: SyringePhalanximine + - id: RadAutoInjector + - id: PillCanisterPotassiumIodide + - id: PillCanisterHyronalin - type: entity id: MedkitAdvancedFilled suffix: Filled parent: MedkitAdvanced components: - - type: StorageFill - contents: - - id: MedicatedSuture - - id: RegenerativeMesh - - id: Bloodpack - amount: 2 + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: MedicatedSuture + - id: RegenerativeMesh + - id: Bloodpack + amount: 2 - type: entity id: MedkitCombatFilled suffix: Filled parent: MedkitCombat components: - - type: StorageFill - contents: - - id: MedicatedSuture - - id: RegenerativeMesh - - id: SyringeEphedrine - - id: SyringeSaline - - id: BruteAutoInjector - - id: BurnAutoInjector + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: MedicatedSuture + - id: RegenerativeMesh + - id: SyringeEphedrine + - id: SyringeSaline + - id: BruteAutoInjector + - id: BurnAutoInjector - type: entity id: StimkitFilled suffix: Stimkit, Filled parent: Medkit components: - - type: StorageFill - contents: - - id: StimpackMini + - type: EntityTableContainerFill + containers: + storagebase: + id: StimpackMini amount: 6 diff --git a/Resources/Prototypes/Catalog/Fills/Items/toolboxes.yml b/Resources/Prototypes/Catalog/Fills/Items/toolboxes.yml index 356fe98233..d8a46334ac 100644 --- a/Resources/Prototypes/Catalog/Fills/Items/toolboxes.yml +++ b/Resources/Prototypes/Catalog/Fills/Items/toolboxes.yml @@ -4,24 +4,25 @@ parent: ToolboxEmergency suffix: Filled components: - - type: StorageFill - contents: - - id: CrowbarRed - - id: RadioHandheld - - id: WelderMini - - id: FireExtinguisherMini - # Random lighting item orGroup - - id: FlashlightLantern - orGroup: LightingItem - - id: Flare - orGroup: LightingItem - - id: GlowstickBase - orGroup: LightingItem - # Low-chance items - - id: FoodSnackChocolate - prob: 0.15 - - id: HarmonicaInstrument - prob: 0.15 + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: CrowbarRed + - id: RadioHandheld + - id: WelderMini + - id: FireExtinguisherMini + # Random lighting item GroupSelector + - !type:GroupSelector + children: + - id: FlashlightLantern + - id: Flare + - id: GlowstickBase + # Low-chance items + - id: FoodSnackChocolate + prob: 0.15 + - id: HarmonicaInstrument + prob: 0.15 - type: entity id: ToolboxElectricalFilled @@ -29,20 +30,10 @@ suffix: Filled parent: ToolboxElectrical components: - - type: StorageFill - contents: - - id: Screwdriver - - id: CrowbarOrange - - id: Wirecutter - - id: CableApcStack10 - - id: CableMVStack10 - - id: trayScanner - prob: 0.9 - - id: ClothingHandsGlovesColorYellow - prob: 0.05 - orGroup: GlovesOrWires - - id: CableHVStack10 - orGroup: GlovesOrWires + - type: EntityTableContainerFill + containers: + storagebase: !type:NestedSelector + tableId: ToolboxElectricalEntityTable - type: entity id: ToolboxElectricalTurretFilled @@ -50,20 +41,27 @@ suffix: Syndicate, Turret, Filled parent: ToolboxElectricalTurret components: - - type: StorageFill - contents: - - id: Screwdriver - - id: CrowbarOrange - - id: Wirecutter - - id: CableApcStack10 - - id: CableMVStack10 - - id: trayScanner - prob: 0.9 + - type: EntityTableContainerFill + containers: + storagebase: !type:NestedSelector + tableId: ToolboxElectricalEntityTable + +- type: entityTable + id: ToolboxElectricalEntityTable + table: !type:AllSelector + children: + - id: Screwdriver + - id: CrowbarOrange + - id: Wirecutter + - id: CableApcStack10 + - id: CableMVStack10 + - id: trayScanner + prob: 0.9 + - !type:GroupSelector + children: - id: ClothingHandsGlovesColorYellow - prob: 0.05 - orGroup: GlovesOrWires + weight: 0.05 - id: CableHVStack10 - orGroup: GlovesOrWires - type: entity id: ToolboxArtisticFilled @@ -71,20 +69,22 @@ suffix: Filled parent: ToolboxArtistic components: - - type: StorageFill - contents: - - id: CrayonBox - - id: Paper - amount: 3 - - id: Pen - - id: MysteryFigureBox - prob: 0.5 - - id: MysteryFigureBox - prob: 0.5 - - id: BookRandom - amount: 2 - - id: CrayonMime - - id: CrayonRainbow + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: CrayonBox + - id: Paper + amount: 3 + - id: Pen + - id: MysteryFigureBox + prob: 0.5 + - id: MysteryFigureBox + prob: 0.5 + - id: BookRandom + amount: 2 + - id: CrayonMime + - id: CrayonRainbow - type: entity id: ToolboxMechanicalFilled @@ -92,18 +92,20 @@ suffix: Filled parent: ToolboxMechanical components: - - type: StorageFill - contents: - - id: CrowbarOrange - - id: Wrench - - id: Welder - - id: Wirecutter - - id: Screwdriver - prob: 0.5 - - id: FlashlightLantern - prob: 0.7 - - id: ClothingHeadHatHardhatBlue - prob: 0.5 + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: CrowbarOrange + - id: Wrench + - id: Welder + - id: Wirecutter + - id: Screwdriver + prob: 0.5 + - id: FlashlightLantern + prob: 0.7 + - id: ClothingHeadHatHardhatBlue + prob: 0.5 - type: entity id: ToolboxMechanicalFilledAllTools @@ -111,30 +113,34 @@ suffix: Filled, all tools parent: ToolboxMechanical components: - - type: StorageFill - contents: - - id: Crowbar - - id: Wrench - - id: Screwdriver - - id: Wirecutter - - id: Welder - - id: Multitool + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: Crowbar + - id: Wrench + - id: Screwdriver + - id: Wirecutter + - id: Welder + - id: Multitool - type: entity parent: ToolboxSyndicate id: ToolboxSyndicateFilled suffix: Filled components: - - type: StorageFill - contents: - - id: Crowbar - - id: Wrench - - id: Screwdriver - - id: Wirecutter - - id: Welder - - id: Multitool - - id: ClothingHandsGlovesCombat - - id: ClothingMaskGasSyndicate + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: Crowbar + - id: Wrench + - id: Screwdriver + - id: Wirecutter + - id: Welder + - id: Multitool + - id: ClothingHandsGlovesCombat + - id: ClothingMaskGasSyndicate - type: StaticPrice price: 1000 @@ -144,8 +150,10 @@ parent: ToolboxGolden suffix: Filled components: - - type: StorageFill - contents: - - id: IngotGold - - id: DrinkGoldenCup - prob: 0.05 + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: IngotGold + - id: DrinkGoldenCup + prob: 0.05 diff --git a/Resources/Prototypes/Catalog/Fills/Lockers/dressers.yml b/Resources/Prototypes/Catalog/Fills/Lockers/dressers.yml index 34dafcba20..b164b49cd4 100644 --- a/Resources/Prototypes/Catalog/Fills/Lockers/dressers.yml +++ b/Resources/Prototypes/Catalog/Fills/Lockers/dressers.yml @@ -3,111 +3,127 @@ parent: Dresser suffix: Filled, Captain components: - - type: StorageFill - contents: - - id: ClothingHeadHatCaptain - - id: ClothingHeadHatCapcap - - id: ClothingUniformJumpsuitCapFormal - - id: ClothingUniformJumpskirtCapFormalDress - - id: ClothingHandsGlovesCaptain - - id: ClothingOuterWinterCap - - id: ClothingNeckCloakCap + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: ClothingHeadHatCaptain + - id: ClothingHeadHatCapcap + - id: ClothingUniformJumpsuitCapFormal + - id: ClothingUniformJumpskirtCapFormalDress + - id: ClothingHandsGlovesCaptain + - id: ClothingOuterWinterCap + - id: ClothingNeckCloakCap - type: entity id: DresserChiefEngineerFilled parent: Dresser suffix: Filled, Chief Engineer components: - - type: StorageFill - contents: - - id: ClothingUniformJumpsuitChiefEngineerTurtle - - id: ClothingUniformJumpskirtChiefEngineerTurtle - - id: ClothingHeadHatBeretEngineering - - id: ClothingOuterWinterCE - - id: ClothingNeckCloakCe + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: ClothingUniformJumpsuitChiefEngineerTurtle + - id: ClothingUniformJumpskirtChiefEngineerTurtle + - id: ClothingHeadHatBeretEngineering + - id: ClothingOuterWinterCE + - id: ClothingNeckCloakCe - type: entity id: DresserChiefMedicalOfficerFilled parent: Dresser suffix: Filled, Chief Medical Officer components: - - type: StorageFill - contents: - - id: ClothingOuterCoatLabCmo - - id: ClothingUniformJumpsuitCMOTurtle - - id: ClothingUniformJumpskirtCMOTurtle - - id: ClothingHeadHatBeretCmo - - id: ClothingHeadMirror - - id: ClothingEyesGlasses - - id: ClothingOuterWinterCMO - - id: ClothingCloakCmo + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: ClothingOuterCoatLabCmo + - id: ClothingUniformJumpsuitCMOTurtle + - id: ClothingUniformJumpskirtCMOTurtle + - id: ClothingHeadHatBeretCmo + - id: ClothingHeadMirror + - id: ClothingEyesGlasses + - id: ClothingOuterWinterCMO + - id: ClothingCloakCmo - type: entity id: DresserHeadOfPersonnelFilled parent: Dresser suffix: Filled, Head Of Personnel components: - - type: StorageFill - contents: - - id: ClothingHeadHatHopcap - - id: ClothingOuterWinterHoP - - id: ClothingEyesGlasses - - id: ClothingNeckCloakHop + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: ClothingHeadHatHopcap + - id: ClothingOuterWinterHoP + - id: ClothingEyesGlasses + - id: ClothingNeckCloakHop - type: entity id: DresserHeadOfSecurityFilled parent: Dresser suffix: Filled, Head Of Security components: - - type: StorageFill - contents: - - id: ClothingHeadHatBeretHoS - - id: ClothingHeadHatHoshat - - id: ClothingMaskNeckGaiter - - id: ClothingUniformJumpskirtHoSAlt - - id: ClothingUniformJumpsuitHoSAlt - - id: ClothingUniformJumpskirtHosFormal - - id: ClothingUniformJumpsuitHosFormal - - id: ClothingOuterWinterHoS - - id: ClothingNeckCloakHos + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: ClothingHeadHatBeretHoS + - id: ClothingHeadHatHoshat + - id: ClothingMaskNeckGaiter + - id: ClothingUniformJumpskirtHoSAlt + - id: ClothingUniformJumpsuitHoSAlt + - id: ClothingUniformJumpskirtHosFormal + - id: ClothingUniformJumpsuitHosFormal + - id: ClothingOuterWinterHoS + - id: ClothingNeckCloakHos - type: entity id: DresserQuarterMasterFilled parent: Dresser suffix: Filled, Quarter Master components: - - type: StorageFill - contents: - - id: ClothingHeadHatBeretQM - - id: ClothingUniformJumpsuitQMFormal - - id: ClothingUniformJumpsuitQMTurtleneck - - id: ClothingUniformJumpskirtQMTurtleneck - - id: ClothingHandsGlovesColorBrown - - id: ClothingOuterWinterQM - - id: ClothingNeckCloakQm + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: ClothingHeadHatBeretQM + - id: ClothingUniformJumpsuitQMFormal + - id: ClothingUniformJumpsuitQMTurtleneck + - id: ClothingUniformJumpskirtQMTurtleneck + - id: ClothingHandsGlovesColorBrown + - id: ClothingOuterWinterQM + - id: ClothingNeckCloakQm - type: entity id: DresserResearchDirectorFilled parent: Dresser suffix: Filled, Research Director components: - - type: StorageFill - contents: - - id: ClothingHeadHatBeretRND - - id: ClothingHandsGlovesColorPurple - - id: ClothingEyesGlasses - - id: ClothingOuterWinterRD - - id: ClothingOuterCoatRD - - id: ClothingNeckCloakRd + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: ClothingHeadHatBeretRND + - id: ClothingHandsGlovesColorPurple + - id: ClothingEyesGlasses + - id: ClothingOuterWinterRD + - id: ClothingOuterCoatRD + - id: ClothingNeckCloakRd - type: entity id: DresserWardenFilled parent: Dresser suffix: Filled, Warden components: - - type: StorageFill - contents: - - id: ClothingHeadHatWarden - - id: ClothingHeadHatBeretWarden - - id: ClothingUniformJumpskirtWarden - - id: ClothingUniformJumpsuitWarden + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: ClothingHeadHatWarden + - id: ClothingHeadHatBeretWarden + - id: ClothingUniformJumpskirtWarden + - id: ClothingUniformJumpsuitWarden diff --git a/Resources/Prototypes/Entities/Clothing/OuterClothing/coats.yml b/Resources/Prototypes/Entities/Clothing/OuterClothing/coats.yml index 5c0f1ed277..265b9e2374 100644 --- a/Resources/Prototypes/Entities/Clothing/OuterClothing/coats.yml +++ b/Resources/Prototypes/Entities/Clothing/OuterClothing/coats.yml @@ -19,10 +19,12 @@ sprite: Clothing/OuterClothing/Coats/detective.rsi - type: Clothing sprite: Clothing/OuterClothing/Coats/detective.rsi - - type: StorageFill - contents: - - id: SmokingPipeFilledTobacco - - id: FlippoEngravedLighter + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: SmokingPipeFilledTobacco + - id: FlippoEngravedLighter - type: ExplosionResistance damageCoefficient: 1 #its a coat. it doesnt do shit @@ -42,10 +44,12 @@ parent: ClothingOuterCoatDetective id: ClothingOuterCoatDetectiveLoadout components: - - type: StorageFill - contents: - - id: SmokingPipeFilledTobacco - - id: FlippoLighter #Not the steal objective, only difference from normal detective trenchcoat + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: SmokingPipeFilledTobacco + - id: FlippoLighter #Not the steal objective, only difference from normal detective trenchcoat - type: entity parent: ClothingOuterStorageBase diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml index 66ddc0e74d..0d3907c50f 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml @@ -87,10 +87,11 @@ tags: - Cola hideStackVisualsWhenClosed: false - - type: StorageFill - contents: - - id: DrinkColaCan - amount: 6 + - type: EntityTableContainerFill + containers: + storagebase: + id: DrinkColaCan + amount: 6 - type: ItemCounter count: tags: [Cola] diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Food/Containers/box.yml b/Resources/Prototypes/Entities/Objects/Consumable/Food/Containers/box.yml index 4b5238fe34..9ca5d1118f 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Food/Containers/box.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Food/Containers/box.yml @@ -50,12 +50,14 @@ shape: - 0,0,2,1 heldPrefix: box - - type: StorageFill - contents: - - id: FoodDonutPink - amount: 3 - - id: FoodDonutPlain - amount: 3 + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: FoodDonutPink + amount: 3 + - id: FoodDonutPlain + amount: 3 - type: ItemCounter count: tags: [Donut] @@ -134,10 +136,11 @@ shape: - 0,0,2,1 storedOffset: 0,-6 - - type: StorageFill - contents: - - id: FoodEgg - amount: 12 + - type: EntityTableContainerFill + containers: + storagebase: + id: FoodEgg + amount: 12 - type: ItemCounter count: tags: [Egg] @@ -184,10 +187,11 @@ id: EggBoxBroken suffix: Broken components: - - type: StorageFill - contents: - - id: Eggshells - amount: 12 + - type: EntityTableContainerFill + containers: + storagebase: + id: Eggshells + amount: 12 - type: Destructible thresholds: - trigger: @@ -242,52 +246,44 @@ id: FoodBoxPizzaFilled suffix: Filled components: - - type: StorageFill - contents: - - id: FoodPizzaArnold - prob: 0.15 - orGroup: Pizza - - id: FoodPizzaDank - prob: 0.10 - orGroup: Pizza - - id: FoodPizzaSassysage - prob: 0.15 - orGroup: Pizza - - id: FoodPizzaMargherita - prob: 0.15 - orGroup: Pizza - - id: FoodPizzaMeat - prob: 0.15 - orGroup: Pizza - - id: FoodPizzaMushroom - prob: 0.15 - orGroup: Pizza - - id: FoodPizzaPineapple - prob: 0.15 - orGroup: Pizza - - id: FoodPizzaVegetable - prob: 0.15 - orGroup: Pizza - - id: FoodPizzaDonkpocket - prob: 0.10 - orGroup: Pizza - - id: FoodPizzaCotton - prob: 0.10 - orGroup: Pizza - - id: FoodPizzaWorldpeas - prob: 0.05 - orGroup: Pizza - - id: KnifePlastic + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: KnifePlastic + - !type:GroupSelector + children: + - id: FoodPizzaArnold + weight: 1.5 + - id: FoodPizzaSassysage + weight: 1.5 + - id: FoodPizzaMargherita + weight: 1.5 + - id: FoodPizzaMeat + weight: 1.5 + - id: FoodPizzaMushroom + weight: 1.5 + - id: FoodPizzaPineapple + weight: 1.5 + - id: FoodPizzaVegetable + weight: 1.5 + - id: FoodPizzaDank + - id: FoodPizzaDonkpocket + - id: FoodPizzaCotton + - id: FoodPizzaWorldpeas + weight: 0.5 - type: entity parent: FoodBoxPizza id: FoodBoxPizzaCotton suffix: Cotton Pizza components: - - type: StorageFill - contents: - - id: FoodPizzaCotton - - id: KnifePlastic + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: FoodPizzaCotton + - id: KnifePlastic # Nugget @@ -331,10 +327,11 @@ sprite: Objects/Consumable/Food/Baked/nuggets.rsi size: Small heldPrefix: box - - type: StorageFill - contents: - - id: FoodBakedNugget - amount: 6 + - type: EntityTableContainerFill + containers: + storagebase: + id: FoodBakedNugget + amount: 6 - type: ItemCounter count: tags: [Nugget] @@ -371,13 +368,14 @@ shape: - 0,0,2,1 storedOffset: -1,1 - - type: StorageFill - contents: - - id: FoodDonkpocket - amount: 6 - - id: DonkcoLighter - amount: 1 - prob: 0.10 + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: FoodDonkpocket + amount: 6 + - id: DonkcoLighter + prob: 0.10 - type: entity parent: FoodBoxDonkpocket @@ -386,10 +384,11 @@ components: - type: Sprite state: spicy-box - - type: StorageFill - contents: - - id: FoodDonkpocketSpicy - amount: 6 + - type: EntityTableContainerFill + containers: + storagebase: + id: FoodDonkpocketSpicy + amount: 6 - type: entity parent: FoodBoxDonkpocket @@ -398,10 +397,11 @@ components: - type: Sprite state: teriyaki-box - - type: StorageFill - contents: - - id: FoodDonkpocketTeriyaki - amount: 6 + - type: EntityTableContainerFill + containers: + storagebase: + id: FoodDonkpocketTeriyaki + amount: 6 - type: entity parent: FoodBoxDonkpocket @@ -410,10 +410,11 @@ components: - type: Sprite state: pizza-box - - type: StorageFill - contents: - - id: FoodDonkpocketPizza - amount: 6 + - type: EntityTableContainerFill + containers: + storagebase: + id: FoodDonkpocketPizza + amount: 6 - type: entity parent: FoodBoxDonkpocket @@ -422,10 +423,11 @@ components: - type: Sprite state: stonk-box - - type: StorageFill - contents: - - id: FoodDonkpocketStonk - amount: 6 + - type: EntityTableContainerFill + containers: + storagebase: + id: FoodDonkpocketStonk + amount: 6 - type: entity parent: FoodBoxDonkpocket @@ -434,10 +436,11 @@ components: - type: Sprite state: carp-box - - type: StorageFill - contents: - - id: FoodDonkpocketCarp - amount: 6 + - type: EntityTableContainerFill + containers: + storagebase: + id: FoodDonkpocketCarp + amount: 6 - type: entity parent: FoodBoxDonkpocket @@ -446,10 +449,11 @@ components: - type: Sprite state: berry-box - - type: StorageFill - contents: - - id: FoodDonkpocketBerry - amount: 6 + - type: EntityTableContainerFill + containers: + storagebase: + id: FoodDonkpocketBerry + amount: 6 - type: entity parent: FoodBoxDonkpocket @@ -458,10 +462,11 @@ components: - type: Sprite state: banana-box - - type: StorageFill - contents: - - id: FoodDonkpocketHonk - amount: 6 + - type: EntityTableContainerFill + containers: + storagebase: + id: FoodDonkpocketHonk + amount: 6 - type: entity parent: FoodBoxDonkpocket @@ -471,10 +476,11 @@ components: - type: Sprite state: dink-box - - type: StorageFill - contents: - - id: FoodDonkpocketDink - amount: 6 + - type: EntityTableContainerFill + containers: + storagebase: + id: FoodDonkpocketDink + amount: 6 - type: entity parent: FoodBoxDonkpocket @@ -483,10 +489,11 @@ components: - type: Sprite state: moth-box - - type: StorageFill - contents: - - id: FoodDonkpocketMoth - amount: 6 + - type: EntityTableContainerFill + containers: + storagebase: + id: FoodDonkpocketMoth + amount: 6 - type: entity id: HappyHonk @@ -510,68 +517,10 @@ - Trash - HappyHonk - BoxCardboard - - type: StorageFill - contents: - - id: ToyMouse - orGroup: GiftPool - - id: ToyAi - orGroup: GiftPool - - id: ToyNuke - orGroup: GiftPool - - id: ToyFigurinePassenger - orGroup: GiftPool - - id: ToyFigurineGriffin - orGroup: GiftPool - - id: ToyHonk - orGroup: GiftPool - - id: ToyIan - orGroup: GiftPool - - id: ToyMarauder - orGroup: GiftPool - - id: ToyMauler - orGroup: GiftPool - - id: ToyGygax - orGroup: GiftPool - - id: ToyOdysseus - orGroup: GiftPool - - id: ToyFigurineOwlman - orGroup: GiftPool - - id: ToyDeathRipley - orGroup: GiftPool - - id: ToyPhazon - orGroup: GiftPool - - id: ToyFireRipley - orGroup: GiftPool - - id: ToyReticence - orGroup: GiftPool - - id: ToyRipley - orGroup: GiftPool - - id: ToySeraph - orGroup: GiftPool - - id: ToyDurand - orGroup: GiftPool - - id: ToyFigurineSkeleton - orGroup: GiftPool - - id: FoamBlade - orGroup: GiftPool - - id: ClothingHeadHatBunny - orGroup: GiftPool - - id: PersonalAI - orGroup: GiftPool - - id: CrayonBox - orGroup: GiftPool - - id: ToySword - orGroup: GiftPool - - id: RevolverCapGun - orGroup: GiftPool - - id: ToyRubberDuck - orGroup: GiftPool - - id: BikeHorn - prob: 0.5 - orGroup: GiftPool - - id: GoldenBikeHorn - prob: 0.1 - orGroup: GiftPool + - type: EntityTableContainerFill + containers: + storagebase: !type:NestedSelector + tableId: HappyHonkToySafeEntityTable - type: entity id: HappyHonkMime @@ -599,24 +548,10 @@ sprite: Objects/Storage/Happyhonk/nukie.rsi - type: Item sprite: Objects/Storage/Happyhonk/nukie.rsi - - type: StorageFill - contents: - - id: C4 - prob: 0.02 - orGroup: GiftPool - - id: ToyMarauder - orGroup: GiftPool - - id: ToyMauler - orGroup: GiftPool - - id: ToyNuke - orGroup: GiftPool - - id: ToySword - orGroup: GiftPool - - id: BalloonSyn - prob: 0.6 - orGroup: GiftPool - - id: PlushieNuke - orGroup: GiftPool + - type: EntityTableContainerFill + containers: + storagebase: !type:NestedSelector + tableId: HappyHonkToyUnsafeEntityTable - type: entity parent: HappyHonkNukie @@ -627,46 +562,30 @@ - type: Storage grid: - 0,0,5,2 - - type: StorageFill - contents: - # toy - - id: C4 - prob: 0.02 - orGroup: GiftPool - - id: ToyMarauder - orGroup: GiftPool - - id: ToyMauler - orGroup: GiftPool - - id: ToyNuke - orGroup: GiftPool - - id: ToySword - orGroup: GiftPool - - id: BalloonSyn - prob: 0.6 - orGroup: GiftPool - - id: PlushieNuke - orGroup: GiftPool - # drinks - 4 cans, up to 2 blood-red brews - - id: DrinkNukieCan - prob: 0.2 - orGroup: Drink1Pool - - id: DrinkColaCan - orGroup: Drink1Pool - - id: DrinkNukieCan - prob: 0.2 - orGroup: Drink2Pool - - id: DrinkColaCan - orGroup: Drink2Pool - - id: DrinkColaCan - amount: 2 - # food - - id: FoodSaladValid - prob: 0.05 - amount: 4 - orGroup: FoodPool - - id: FoodSnackSyndi - amount: 4 - orGroup: FoodPool + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + # toy + - !type:NestedSelector + tableId: HappyHonkToyUnsafeEntityTable + # drinks - 4 cans, up to 2 blood-red brews + - !type:GroupSelector + rolls: 2 + children: + - id: DrinkNukieCan + weight: 0.2 + - id: DrinkColaCan + - id: DrinkColaCan + amount: 2 + # food + - !type:GroupSelector + children: + - id: FoodSaladValid + weight: 0.05 + amount: 4 + - id: FoodSnackSyndi + amount: 4 - type: entity id: HappyHonkCluwne @@ -683,9 +602,10 @@ sprite: Objects/Storage/Happyhonk/cluwne.rsi - type: Item sprite: Objects/Storage/Happyhonk/cluwne.rsi - - type: StorageFill - contents: - - id: CluwneHorn + - type: EntityTableContainerFill + containers: + storagebase: + id: CluwneHorn - type: entity id: FoodMealHappyHonkClown @@ -693,78 +613,19 @@ suffix: random food spawner meal categories: [ HideSpawnMenu ] components: - - type: StorageFill - contents: - - id: FoodBurgerCheese - orGroup: Burgers - - id: DrinkColaCan - orGroup: DrinkPool - - id: DrinkLemonLimeCan - orGroup: DrinkPool - - id: DrinkLemonLimeCranberryCan - orGroup: DrinkPool - - id: DrinkIcedTeaCan - orGroup: DrinkPool - - id: ToyMouse - orGroup: GiftPool - - id: ToyAi - orGroup: GiftPool - - id: ToyNuke - orGroup: GiftPool - - id: ToyFigurinePassenger - orGroup: GiftPool - - id: ToyFigurineGriffin - orGroup: GiftPool - - id: ToyHonk - orGroup: GiftPool - - id: ToyIan - orGroup: GiftPool - - id: ToyMarauder - orGroup: GiftPool - - id: ToyMauler - orGroup: GiftPool - - id: ToyGygax - orGroup: GiftPool - - id: ToyOdysseus - orGroup: GiftPool - - id: ToyFigurineOwlman - orGroup: GiftPool - - id: ToyDeathRipley - orGroup: GiftPool - - id: ToyPhazon - orGroup: GiftPool - - id: ToyFireRipley - orGroup: GiftPool - - id: ToyReticence - orGroup: GiftPool - - id: ToyRipley - orGroup: GiftPool - - id: ToySeraph - orGroup: GiftPool - - id: ToyDurand - orGroup: GiftPool - - id: ToyFigurineSkeleton - orGroup: GiftPool - - id: FoamBlade - orGroup: GiftPool - - id: ClothingHeadHatBunny - orGroup: GiftPool - - id: PersonalAI - orGroup: GiftPool - - id: CrayonBox - orGroup: GiftPool - - id: ToySword - orGroup: GiftPool - - id: RevolverCapGun - orGroup: GiftPool - - id: ToyRubberDuck - orGroup: GiftPool - - id: BikeHorn - prob: 0.5 - orGroup: GiftPool - - id: GoldenBikeHorn - prob: 0.1 - orGroup: GiftPool + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - !type:NestedSelector # First since it can spawn a 3x3 + tableId: HappyHonkToySafeEntityTable + - id: FoodBurgerCheese + - !type:GroupSelector + children: + - id: DrinkColaCan + - id: DrinkLemonLimeCan + - id: DrinkLemonLimeCranberryCan + - id: DrinkIcedTeaCan - type: entity id: FoodMealHappyHonkBigBite @@ -772,74 +633,47 @@ name: Happy Honk Big Bite Meal description: Someone paid good money to get this fast food meal shipped out this way. It smells fresh, somehow. components: - - type: StorageFill - contents: - - id: FoodBurgerBig - amount: 1 - - id: FoodMealFriesCheesy - amount: 1 - - id: DrinkColaBottleFull - amount: 1 - - id: FoodPieAppleSlice - amount: 1 - - id: ToyMouse - orGroup: GiftPool - - id: ToyAi - orGroup: GiftPool - - id: ToyNuke - orGroup: GiftPool - - id: ToyFigurinePassenger - orGroup: GiftPool - - id: ToyFigurineGriffin - orGroup: GiftPool - - id: ToyHonk - orGroup: GiftPool - - id: ToyIan - orGroup: GiftPool - - id: ToyMarauder - orGroup: GiftPool - - id: ToyMauler - orGroup: GiftPool - - id: ToyGygax - orGroup: GiftPool - - id: ToyOdysseus - orGroup: GiftPool - - id: ToyFigurineOwlman - orGroup: GiftPool - - id: ToyDeathRipley - orGroup: GiftPool - - id: ToyPhazon - orGroup: GiftPool - - id: ToyFireRipley - orGroup: GiftPool - - id: ToyReticence - orGroup: GiftPool - - id: ToyRipley - orGroup: GiftPool - - id: ToySeraph - orGroup: GiftPool - - id: ToyDurand - orGroup: GiftPool - - id: ToyFigurineSkeleton - orGroup: GiftPool - - id: FoamBlade - orGroup: GiftPool - - id: ClothingHeadHatBunny - orGroup: GiftPool - - id: PersonalAI - orGroup: GiftPool - - id: ToySword - orGroup: GiftPool - - id: RevolverCapGun - orGroup: GiftPool - - id: ToyRubberDuck - orGroup: GiftPool - - id: BikeHorn - prob: 0.5 - orGroup: GiftPool - - id: GoldenBikeHorn - prob: 0.1 - orGroup: GiftPool + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: FoodBurgerBig + - id: FoodMealFriesCheesy + - id: DrinkColaBottleFull + - id: FoodPieAppleSlice + - !type:GroupSelector # One item is too big, so the HappyHonkToySafeEntityTable can't be used like the others. + children: + - id: ToyMouse + - id: ToyAi + - id: ToyNuke + - id: ToyFigurinePassenger + - id: ToyFigurineGriffin + - id: ToyHonk + - id: ToyIan + - id: ToyMarauder + - id: ToyMauler + - id: ToyGygax + - id: ToyOdysseus + - id: ToyFigurineOwlman + - id: ToyDeathRipley + - id: ToyPhazon + - id: ToyFireRipley + - id: ToyReticence + - id: ToyRipley + - id: ToySeraph + - id: ToyDurand + - id: ToyFigurineSkeleton + - id: FoamBlade + - id: ClothingHeadHatBunny + - id: PersonalAI + #- id: CrayonBox + - id: ToySword + - id: RevolverCapGun + - id: ToyRubberDuck + - id: BikeHorn + weight: 0.5 + - id: GoldenBikeHorn + weight: 0.1 - type: entity parent: BoxCardboard @@ -861,6 +695,57 @@ size: Normal shape: - 0,0,1,1 - - type: StorageFill - contents: - - id: MaterialCloth10 + - type: EntityTableContainerFill + containers: + storagebase: + id: MaterialCloth10 + +- type: entityTable + id: HappyHonkToySafeEntityTable + table: !type:GroupSelector + children: + - id: ToyMouse + - id: ToyAi + - id: ToyNuke + - id: ToyFigurinePassenger + - id: ToyFigurineGriffin + - id: ToyHonk + - id: ToyIan + - id: ToyMarauder + - id: ToyMauler + - id: ToyGygax + - id: ToyOdysseus + - id: ToyFigurineOwlman + - id: ToyDeathRipley + - id: ToyPhazon + - id: ToyFireRipley + - id: ToyReticence + - id: ToyRipley + - id: ToySeraph + - id: ToyDurand + - id: ToyFigurineSkeleton + - id: FoamBlade + - id: ClothingHeadHatBunny + - id: PersonalAI + - id: CrayonBox + - id: ToySword + - id: RevolverCapGun + - id: ToyRubberDuck + - id: BikeHorn + weight: 0.5 + - id: GoldenBikeHorn + weight: 0.1 + +- type: entityTable + id: HappyHonkToyUnsafeEntityTable + table: !type:GroupSelector + children: + - id: C4 + weight: 0.02 + - id: ToyMarauder + - id: ToyMauler + - id: ToyNuke + - id: ToySword + - id: BalloonSyn + weight: 0.6 + - id: PlushieNuke diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Smokeables/Cigarettes/cartons.yml b/Resources/Prototypes/Entities/Objects/Consumable/Smokeables/Cigarettes/cartons.yml index 8c55fd740e..681319d0e0 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Smokeables/Cigarettes/cartons.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Smokeables/Cigarettes/cartons.yml @@ -13,9 +13,10 @@ - type: Storage grid: - 0,0,4,1 - - type: StorageFill - contents: - - id: CigPackGreen + - type: EntityTableContainerFill + containers: + storagebase: + id: CigPackGreen amount: 5 - type: Tag tags: @@ -36,9 +37,10 @@ state: icon - type: Item sprite: Objects/Consumable/Smokeables/Cigarettes/Cartons/red.rsi - - type: StorageFill - contents: - - id: CigPackRed + - type: EntityTableContainerFill + containers: + storagebase: + id: CigPackRed amount: 5 - type: entity @@ -52,9 +54,10 @@ state: icon - type: Item sprite: Objects/Consumable/Smokeables/Cigarettes/Cartons/blue.rsi - - type: StorageFill - contents: - - id: CigPackBlue + - type: EntityTableContainerFill + containers: + storagebase: + id: CigPackBlue amount: 5 - type: entity @@ -68,9 +71,10 @@ state: icon - type: Item sprite: Objects/Consumable/Smokeables/Cigarettes/Cartons/black.rsi - - type: StorageFill - contents: - - id: CigPackBlack + - type: EntityTableContainerFill + containers: + storagebase: + id: CigPackBlack amount: 5 - type: entity @@ -84,7 +88,8 @@ state: icon - type: Item sprite: Objects/Consumable/Smokeables/Cigarettes/Cartons/mixed.rsi - - type: StorageFill - contents: - - id: CigPackMixed - amount: 3 + - type: EntityTableContainerFill + containers: + storagebase: + id: CigPackMixed + amount: 3 diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Smokeables/Cigarettes/packs.yml b/Resources/Prototypes/Entities/Objects/Consumable/Smokeables/Cigarettes/packs.yml index 1dd9bb814b..63b341936a 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Smokeables/Cigarettes/packs.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Smokeables/Cigarettes/packs.yml @@ -50,10 +50,11 @@ - type: Storage grid: - 0,0,4,1 - - type: StorageFill - contents: - - id: Cigarette - amount: 10 + - type: EntityTableContainerFill + containers: + storagebase: + id: Cigarette + amount: 10 - type: ItemCounter count: tags: [Cigarette] @@ -186,10 +187,11 @@ sprite: Objects/Consumable/Smokeables/Cigarettes/Packs/syndicate.rsi - type: Item sprite: Objects/Consumable/Smokeables/Cigarettes/Packs/syndicate.rsi - - type: StorageFill - contents: - - id: CigaretteSyndicate - amount: 10 + - type: EntityTableContainerFill + containers: + storagebase: + id: CigaretteSyndicate + amount: 10 - type: entity id: CigPackMixed diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Smokeables/Cigarettes/rolling_paper.yml b/Resources/Prototypes/Entities/Objects/Consumable/Smokeables/Cigarettes/rolling_paper.yml index 01a203bcfe..2fe084b193 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Smokeables/Cigarettes/rolling_paper.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Smokeables/Cigarettes/rolling_paper.yml @@ -11,9 +11,10 @@ tags: - RollingPaper - CigFilter - - type: StorageFill - contents: - - id: PaperRolling + - type: EntityTableContainerFill + containers: + storagebase: + id: PaperRolling amount: 4 - type: Sprite sprite: Objects/Consumable/Smokeables/Cigarettes/paper.rsi @@ -27,12 +28,14 @@ id: PackPaperRollingFilters description: A pack of filters and thin pieces of paper used to make fine smokeables. components: - - type: StorageFill - contents: - - id: PaperRolling - amount: 2 - - id: CigaretteFilter - amount: 2 + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: PaperRolling + amount: 2 + - id: CigaretteFilter + amount: 2 - type: entity id: PaperRolling diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Smokeables/Cigars/case.yml b/Resources/Prototypes/Entities/Objects/Consumable/Smokeables/Cigars/case.yml index 5e91d53847..20861413c7 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Smokeables/Cigars/case.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Smokeables/Cigars/case.yml @@ -44,10 +44,11 @@ shape: - 0,0,2,1 storedRotation: 90 - - type: StorageFill - contents: - - id: Cigar - amount: 8 + - type: EntityTableContainerFill + containers: + storagebase: + id: Cigar + amount: 8 - type: ItemCounter count: tags: [Cigar] @@ -69,7 +70,8 @@ name: premium cigar case description: "A case of premium Havanian cigars. You'll only see heads with these." components: - - type: StorageFill - contents: - - id: CigarGold - amount: 8 + - type: EntityTableContainerFill + containers: + storagebase: + id: CigarGold + amount: 8 diff --git a/Resources/Prototypes/Entities/Objects/Devices/Syndicate_Gadgets/guardian_activators.yml b/Resources/Prototypes/Entities/Objects/Devices/Syndicate_Gadgets/guardian_activators.yml index 254dcccde9..6cd2c335dd 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/Syndicate_Gadgets/guardian_activators.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/Syndicate_Gadgets/guardian_activators.yml @@ -38,11 +38,13 @@ id: BoxHoloparasite description: A box containing a holoparasite injector. components: - - type: StorageFill - contents: - - id: HoloparasiteInjector - - id: HoloparasiteInfo - - id: ClothingHeadHatBizarreSoft + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: HoloparasiteInjector + - id: HoloparasiteInfo + - id: ClothingHeadHatBizarreSoft - type: Sprite layers: - state: box @@ -54,11 +56,13 @@ id: BoxHoloclown description: A box containing a holoclown injector. components: - - type: StorageFill - contents: - - id: HoloClownInjector - - id: ToyFigurineHoloClown - - id: ToyHammer + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: HoloClownInjector + - id: ToyFigurineHoloClown + - id: ToyHammer - type: Sprite layers: - state: box_hug diff --git a/Resources/Prototypes/Entities/Objects/Fun/crayons.yml b/Resources/Prototypes/Entities/Objects/Fun/crayons.yml index b0f38f37ea..6c2b291cd1 100644 --- a/Resources/Prototypes/Entities/Objects/Fun/crayons.yml +++ b/Resources/Prototypes/Entities/Objects/Fun/crayons.yml @@ -299,16 +299,18 @@ sprite: Objects/Fun/crayons.rsi size: Small heldPrefix: box - - type: StorageFill - contents: - - id: CrayonRed - - id: CrayonOrange - - id: CrayonYellow - - id: CrayonGreen - - id: CrayonBlue - - id: CrayonPurple - - id: CrayonBlack - - id: CrayonWhite + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: CrayonRed + - id: CrayonOrange + - id: CrayonYellow + - id: CrayonGreen + - id: CrayonBlue + - id: CrayonPurple + - id: CrayonBlack + - id: CrayonWhite - type: ItemMapper mapLayers: black_box: diff --git a/Resources/Prototypes/Entities/Objects/Fun/dice_bag.yml b/Resources/Prototypes/Entities/Objects/Fun/dice_bag.yml index 1a579572d9..41cea1412c 100644 --- a/Resources/Prototypes/Entities/Objects/Fun/dice_bag.yml +++ b/Resources/Prototypes/Entities/Objects/Fun/dice_bag.yml @@ -4,15 +4,17 @@ name: bag of dice description: Contains all the luck you'll ever need. components: - - type: StorageFill - contents: - - id: d4Dice - - id: d6Dice - - id: d8Dice - - id: d10Dice - - id: d12Dice - - id: d20Dice - - id: PercentileDie + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: d4Dice + - id: d6Dice + - id: d8Dice + - id: d10Dice + - id: d12Dice + - id: d20Dice + - id: PercentileDie - type: Sprite sprite: Objects/Fun/dice.rsi state: dicebag diff --git a/Resources/Prototypes/Entities/Objects/Fun/snap_pops.yml b/Resources/Prototypes/Entities/Objects/Fun/snap_pops.yml index 4380184c26..df567912ec 100644 --- a/Resources/Prototypes/Entities/Objects/Fun/snap_pops.yml +++ b/Resources/Prototypes/Entities/Objects/Fun/snap_pops.yml @@ -50,9 +50,10 @@ - 0,0,4,3 areaInsert: true maxItemSize: Tiny - - type: StorageFill - contents: - - id: SnapPop + - type: EntityTableContainerFill + containers: + storagebase: + id: SnapPop amount: 5 - type: Dumpable diff --git a/Resources/Prototypes/Entities/Objects/Misc/arabianlamp.yml b/Resources/Prototypes/Entities/Objects/Misc/arabianlamp.yml index 2a289a95f8..4ddfabd793 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/arabianlamp.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/arabianlamp.yml @@ -13,9 +13,10 @@ breakOnAccessBreaker: false - type: EntityStorage capacity: 1 # Its smol. - # - type: StorageFill - # contents: - # - id: PuddleSparkle # Ha! Cute. Unfortunately it despawns before the container is likely to open. + # - type: EntityTableContainerFill + # containers: + # entity_storage: + # id: PuddleSparkle # Ha! Cute. Unfortunately it despawns before the container is likely to open. - type: ContainerContainer containers: entity_storage: !type:Container diff --git a/Resources/Prototypes/Entities/Objects/Misc/folders.yml b/Resources/Prototypes/Entities/Objects/Misc/folders.yml index e4e0896003..ae838be0a8 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/folders.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/folders.yml @@ -76,28 +76,31 @@ id: BoxFolderFill # Include this as a parent prototype to add 0-5 random papers to a folder's inventory when spawned. suffix: Filled components: - - type: StorageFill - contents: - - id: Paper - prob: 0.5 - - id: PaperOffice - prob: 0.4 - - id: Paper - prob: 0.3 - - id: PaperOffice - prob: 0.2 - - id: Paper - prob: 0.2 + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: Paper + prob: 0.5 + - id: PaperOffice + prob: 0.4 + - id: Paper + prob: 0.3 + - id: PaperOffice + prob: 0.2 + - id: Paper + prob: 0.2 - type: entity abstract: true id: BoxFolderFillThreePapers # Like BoxFolderFill, but always has exactly three sheets of standard paper; use for things that should always be consistent, e.g roundstart items suffix: 3 papers components: - - type: StorageFill - contents: - - id: Paper - amount: 3 + - type: EntityTableContainerFill + containers: + storagebase: + id: Paper + amount: 3 - type: entity parent: [BoxFolderBaseEmpty, BoxFolderFill] diff --git a/Resources/Prototypes/Entities/Objects/Misc/medalcase.yml b/Resources/Prototypes/Entities/Objects/Misc/medalcase.yml index 9304d09eb6..3e56cf3da7 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/medalcase.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/medalcase.yml @@ -21,13 +21,15 @@ whitelist: tags: - Medal - - type: StorageFill - contents: - - id: ClothingNeckGoldmedal - - id: ClothingNeckBronzeheart - - id: ClothingNeckCargomedal - - id: ClothingNeckEngineermedal - - id: ClothingNeckMedicalmedal - - id: ClothingNeckSciencemedal - - id: ClothingNeckSecuritymedal - - id: ClothingNeckClownmedal + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: ClothingNeckGoldmedal + - id: ClothingNeckBronzeheart + - id: ClothingNeckCargomedal + - id: ClothingNeckEngineermedal + - id: ClothingNeckMedicalmedal + - id: ClothingNeckSciencemedal + - id: ClothingNeckSecuritymedal + - id: ClothingNeckClownmedal diff --git a/Resources/Prototypes/Entities/Objects/Misc/monkeycube.yml b/Resources/Prototypes/Entities/Objects/Misc/monkeycube.yml index 9b95d15e69..03f9e320ab 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/monkeycube.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/monkeycube.yml @@ -4,9 +4,10 @@ id: MonkeyCubeBox description: Drymate brand monkey cubes. Just add water! components: - - type: StorageFill - contents: - - id: MonkeyCubeWrapped + - type: EntityTableContainerFill + containers: + storagebase: + id: MonkeyCubeWrapped amount: 8 - type: Sprite sprite: Objects/Misc/monkeycube.rsi @@ -47,9 +48,10 @@ id: KoboldCubeBox description: Condensed kobolds in a cube. Just add water! components: - - type: StorageFill - contents: - - id: KoboldCubeWrapped + - type: EntityTableContainerFill + containers: + storagebase: + id: KoboldCubeWrapped amount: 8 - type: Sprite sprite: Objects/Misc/monkeycube.rsi @@ -61,12 +63,14 @@ id: VariantCubeBox description: Both kobold cubes and monkey cubes. Just add water! components: - - type: StorageFill - contents: - - id: KoboldCubeWrapped - amount: 4 - - id: MonkeyCubeWrapped - amount: 4 + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: KoboldCubeWrapped + amount: 4 + - id: MonkeyCubeWrapped + amount: 4 - type: Sprite sprite: Objects/Misc/monkeycube.rsi state: box_variant @@ -90,9 +94,10 @@ id: SyndicateSpongeBox description: Drymate brand monkey cubes. Just add water! components: - - type: StorageFill - contents: - - id: SyndicateSpongeWrapped + - type: EntityTableContainerFill + containers: + storagebase: + id: SyndicateSpongeWrapped amount: 6 - type: Sprite sprite: Objects/Misc/monkeycube.rsi diff --git a/Resources/Prototypes/Entities/Objects/Specific/Medical/healing.yml b/Resources/Prototypes/Entities/Objects/Specific/Medical/healing.yml index aedbd3190c..ae89913f38 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Medical/healing.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Medical/healing.yml @@ -406,10 +406,11 @@ components: - type: Label currentLabel: dexalin 10u - - type: StorageFill - contents: - - id: PillDexalin - amount: 7 + - type: EntityTableContainerFill + containers: + storagebase: + id: PillDexalin + amount: 7 - type: entity name: pill @@ -439,10 +440,11 @@ components: - type: Label currentLabel: dylovene 10u - - type: StorageFill - contents: - - id: PillDylovene - amount: 5 + - type: EntityTableContainerFill + containers: + storagebase: + id: PillDylovene + amount: 5 - type: entity name: pill @@ -472,10 +474,11 @@ components: - type: Label currentLabel: hyronalin 10u - - type: StorageFill - contents: - - id: PillHyronalin - amount: 5 + - type: EntityTableContainerFill + containers: + storagebase: + id: PillHyronalin + amount: 5 - type: entity name: pill @@ -505,10 +508,11 @@ components: - type: Label currentLabel: potassium iodide 10u - - type: StorageFill - contents: - - id: PillPotassiumIodide - amount: 5 + - type: EntityTableContainerFill + containers: + storagebase: + id: PillPotassiumIodide + amount: 5 - type: entity name: pill @@ -558,10 +562,11 @@ components: - type: Label currentLabel: iron 10u - - type: StorageFill - contents: - - id: PillIron - amount: 5 + - type: EntityTableContainerFill + containers: + storagebase: + id: PillIron + amount: 5 - type: entity name: pill canister @@ -571,10 +576,11 @@ components: - type: Label currentLabel: copper 10u - - type: StorageFill - contents: - - id: PillCopper - amount: 5 + - type: EntityTableContainerFill + containers: + storagebase: + id: PillCopper + amount: 5 - type: entity name: pill @@ -604,10 +610,11 @@ components: - type: Label currentLabel: kelotane 10u - - type: StorageFill - contents: - - id: PillKelotane - amount: 5 + - type: EntityTableContainerFill + containers: + storagebase: + id: PillKelotane + amount: 5 - type: entity name: pill @@ -637,10 +644,11 @@ components: - type: Label currentLabel: dermaline 10u - - type: StorageFill - contents: - - id: PillDermaline - amount: 5 + - type: EntityTableContainerFill + containers: + storagebase: + id: PillDermaline + amount: 5 - type: entity name: space mirage @@ -683,10 +691,11 @@ components: - type: Label currentLabel: tricordrazine 10u - - type: StorageFill - contents: - - id: PillTricordrazine - amount: 5 + - type: EntityTableContainerFill + containers: + storagebase: + id: PillTricordrazine + amount: 5 - type: entity name: pill @@ -716,10 +725,11 @@ components: - type: Label currentLabel: bicaridine 10u - - type: StorageFill - contents: - - id: PillBicaridine - amount: 5 + - type: EntityTableContainerFill + containers: + storagebase: + id: PillBicaridine + amount: 5 - type: entity name: pill @@ -749,10 +759,11 @@ components: - type: Label currentLabel: charcoal 10u - - type: StorageFill - contents: - - id: PillCharcoal - amount: 3 + - type: EntityTableContainerFill + containers: + storagebase: + id: PillCharcoal + amount: 3 - type: entity name: romerol pill @@ -802,68 +813,45 @@ id: PillCanisterRandom suffix: Random components: - - type: StorageFill - contents: - - id: PillDexalin - prob: 0.10 - maxAmount: 7 - orGroup: RandomPill - - id: PillDylovene - prob: 0.10 - maxAmount: 7 - orGroup: RandomPill - - id: PillHyronalin - prob: 0.10 - maxAmount: 7 - orGroup: RandomPill - - id: PillPotassiumIodide - prob: 0.10 - maxAmount: 7 - orGroup: RandomPill - - id: PillIron - prob: 0.10 - maxAmount: 7 - orGroup: RandomPill - - id: PillCopper - prob: 0.10 - maxAmount: 7 - orGroup: RandomPill - - id: PillKelotane - prob: 0.10 - maxAmount: 7 - orGroup: RandomPill - - id: PillDermaline - prob: 0.10 - maxAmount: 7 - orGroup: RandomPill - - id: PillTricordrazine - prob: 0.10 - maxAmount: 7 - orGroup: RandomPill - - id: PillBicaridine - prob: 0.10 - maxAmount: 7 - orGroup: RandomPill - - id: PillCharcoal - prob: 0.10 - maxAmount: 7 - orGroup: RandomPill - - id: PillAmbuzol - prob: 0.075 - maxAmount: 7 - orGroup: RandomPill - - id: PillAmbuzolPlus - prob: 0.075 - maxAmount: 7 - orGroup: RandomPill - - id: PillSpaceDrugs - prob: 0.075 - maxAmount: 7 - orGroup: RandomPill - - id: StrangePill - prob: 0.075 - maxAmount: 7 - orGroup: RandomPill + - type: EntityTableContainerFill + containers: + storagebase: !type:GroupSelector + children: + - id: PillDexalin + amount: &Range1to6 !type:RangeNumberSelector + range: 1, 6 + - id: PillDylovene + amount: *Range1to6 + - id: PillHyronalin + amount: *Range1to6 + - id: PillPotassiumIodide + amount: *Range1to6 + - id: PillIron + amount: *Range1to6 + - id: PillCopper + amount: *Range1to6 + - id: PillKelotane + amount: *Range1to6 + - id: PillDermaline + amount: *Range1to6 + - id: PillTricordrazine + amount: *Range1to6 + - id: PillBicaridine + amount: *Range1to6 + - id: PillCharcoal + amount: *Range1to6 + - id: PillAmbuzol + weight: 0.75 + amount: *Range1to6 + - id: PillAmbuzolPlus + weight: 0.75 + amount: *Range1to6 + - id: PillSpaceDrugs + weight: 0.75 + amount: *Range1to6 + - id: StrangePill + weight: 0.75 + amount: *Range1to6 # Syringes - type: entity diff --git a/Resources/Prototypes/Entities/Objects/Specific/Security/evidence-marker.yml b/Resources/Prototypes/Entities/Objects/Specific/Security/evidence-marker.yml index 0773813461..730f5547e3 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Security/evidence-marker.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Security/evidence-marker.yml @@ -80,11 +80,13 @@ id: BoxEvidenceMarkers description: A pack of numbered yellow markers, useful for labeling evidence on a crime scene. components: - - type: Item - shape: - - 0,0,1,1 - - type: StorageFill - contents: + - type: Item + shape: + - 0,0,1,1 + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: - id: EvidenceMarkerOne - id: EvidenceMarkerTwo - id: EvidenceMarkerThree @@ -94,7 +96,7 @@ - id: EvidenceMarkerSeven - id: EvidenceMarkerEight - id: EvidenceMarkerNine - - type: Sprite - layers: - - state: box_security - - state: evidence_markers + - type: Sprite + layers: + - state: box_security + - state: evidence_markers diff --git a/Resources/Prototypes/Entities/Objects/Tools/cowtools.yml b/Resources/Prototypes/Entities/Objects/Tools/cowtools.yml index 05816e817a..8320bba397 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/cowtools.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/cowtools.yml @@ -172,12 +172,14 @@ suffix: Filled parent: CowToolbox components: - - type: StorageFill - contents: - - id: Haycutters - - id: Moodriver - - id: Wronch - - id: Cowbar - - id: Mooltitool - - id: Cowelder - - id: Milkalyzer + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: Haycutters + - id: Moodriver + - id: Wronch + - id: Cowbar + - id: Mooltitool + - id: Cowelder + - id: Milkalyzer diff --git a/Resources/Prototypes/Entities/Objects/Tools/matches.yml b/Resources/Prototypes/Entities/Objects/Tools/matches.yml index c701a400d5..456e6bb228 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/matches.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/matches.yml @@ -91,9 +91,10 @@ - type: Storage grid: - 0,0,2,1 - - type: StorageFill - contents: - - id: Matchstick + - type: EntityTableContainerFill + containers: + storagebase: + id: Matchstick amount: 6 - type: ItemCounter count: @@ -122,9 +123,10 @@ - type: Storage grid: - 0,0,11,1 - - type: StorageFill - contents: - - id: GorlexMatchstick + - type: EntityTableContainerFill + containers: + storagebase: + id: GorlexMatchstick amount: 24 - type: Matchbox diff --git a/Resources/Prototypes/Entities/Structures/Dispensers/booze.yml b/Resources/Prototypes/Entities/Structures/Dispensers/booze.yml index 4f03403e25..f051a9de72 100644 --- a/Resources/Prototypes/Entities/Structures/Dispensers/booze.yml +++ b/Resources/Prototypes/Entities/Structures/Dispensers/booze.yml @@ -31,17 +31,19 @@ suffix: Filled parent: BoozeDispenserEmpty components: - - type: StorageFill - contents: - - id: DrinkAleBottleFullGrowler - - id: DrinkBeerGrowler - - id: DrinkCoffeeLiqueurBottleFull - - id: DrinkCognacBottleFull - - id: DrinkGinBottleFull - - id: DrinkMeadJug - - id: DrinkRumBottleFull - - id: DrinkTequilaBottleFull - - id: DrinkVermouthBottleFull - - id: DrinkVodkaBottleFull - - id: DrinkWhiskeyBottleFull - - id: DrinkWineBottleFull + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: DrinkAleBottleFullGrowler + - id: DrinkBeerGrowler + - id: DrinkCoffeeLiqueurBottleFull + - id: DrinkCognacBottleFull + - id: DrinkGinBottleFull + - id: DrinkMeadJug + - id: DrinkRumBottleFull + - id: DrinkTequilaBottleFull + - id: DrinkVermouthBottleFull + - id: DrinkVodkaBottleFull + - id: DrinkWhiskeyBottleFull + - id: DrinkWineBottleFull diff --git a/Resources/Prototypes/Entities/Structures/Dispensers/chem.yml b/Resources/Prototypes/Entities/Structures/Dispensers/chem.yml index 5aebde564c..e4793cb93f 100644 --- a/Resources/Prototypes/Entities/Structures/Dispensers/chem.yml +++ b/Resources/Prototypes/Entities/Structures/Dispensers/chem.yml @@ -55,25 +55,27 @@ parent: ChemDispenserEmpty components: - type: ReagentDispenser - - type: StorageFill - contents: - - id: JugAluminium - - id: JugCarbon - - id: JugChlorine - - id: JugCopper - - id: JugEthanol - - id: JugFluorine - - id: JugSugar - - id: JugHydrogen - - id: JugIodine - - id: JugIron - - id: JugLithium - - id: JugMercury - - id: JugNitrogen - - id: JugOxygen - - id: JugPhosphorus - - id: JugPotassium - - id: JugRadium - - id: JugSilicon - - id: JugSodium - - id: JugSulfur + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: JugAluminium + - id: JugCarbon + - id: JugChlorine + - id: JugCopper + - id: JugEthanol + - id: JugFluorine + - id: JugSugar + - id: JugHydrogen + - id: JugIodine + - id: JugIron + - id: JugLithium + - id: JugMercury + - id: JugNitrogen + - id: JugOxygen + - id: JugPhosphorus + - id: JugPotassium + - id: JugRadium + - id: JugSilicon + - id: JugSodium + - id: JugSulfur diff --git a/Resources/Prototypes/Entities/Structures/Dispensers/soda.yml b/Resources/Prototypes/Entities/Structures/Dispensers/soda.yml index 6df6d595d2..6ef00ae330 100644 --- a/Resources/Prototypes/Entities/Structures/Dispensers/soda.yml +++ b/Resources/Prototypes/Entities/Structures/Dispensers/soda.yml @@ -29,24 +29,26 @@ id: SodaDispenser suffix: Filled components: - - type: StorageFill - contents: - - id: DrinkCoconutWaterJug - - id: DrinkCoffeeJug - - id: DrinkColaBottleFull - - id: DrinkCreamCartonXL - - id: DrinkDrGibbJug - - id: DrinkEnergyDrinkJug - - id: DrinkGreenTeaJug - - id: DrinkIceJug - - id: DrinkJuiceLimeCartonXL - - id: DrinkJuiceOrangeCartonXL - - id: DrinkLemonLimeJug - - id: DrinkRootBeerJug - - id: DrinkSodaWaterBottleFull - - id: DrinkSpaceMountainWindBottleFull - - id: DrinkSpaceUpBottleFull - - id: DrinkSugarJug - - id: DrinkTeaJug - - id: DrinkTonicWaterBottleFull - - id: DrinkWaterMelonJuiceJug + - type: EntityTableContainerFill + containers: + storagebase: !type:AllSelector + children: + - id: DrinkCoconutWaterJug + - id: DrinkCoffeeJug + - id: DrinkColaBottleFull + - id: DrinkCreamCartonXL + - id: DrinkDrGibbJug + - id: DrinkEnergyDrinkJug + - id: DrinkGreenTeaJug + - id: DrinkIceJug + - id: DrinkJuiceLimeCartonXL + - id: DrinkJuiceOrangeCartonXL + - id: DrinkLemonLimeJug + - id: DrinkRootBeerJug + - id: DrinkSodaWaterBottleFull + - id: DrinkSpaceMountainWindBottleFull + - id: DrinkSpaceUpBottleFull + - id: DrinkSugarJug + - id: DrinkTeaJug + - id: DrinkTonicWaterBottleFull + - id: DrinkWaterMelonJuiceJug diff --git a/Resources/Prototypes/Entities/Structures/Furniture/dresser.yml b/Resources/Prototypes/Entities/Structures/Furniture/dresser.yml index ccfb25a802..4bc1e0d6ea 100644 --- a/Resources/Prototypes/Entities/Structures/Furniture/dresser.yml +++ b/Resources/Prototypes/Entities/Structures/Furniture/dresser.yml @@ -56,473 +56,340 @@ parent: Dresser suffix: Filled components: - - type: StorageFill - contents: - - id: ClothingNeckLGBTPin - prob: 0.06 - orGroup: dressermainloot - - id: ClothingUniformJumpsuitColorGrey - prob: 0.06 - orGroup: dressermainloot - - id: ClothingUniformJumpskirtColorGrey - prob: 0.06 - orGroup: dressermainloot - - id: ClothingUniformJumpsuitColorWhite - prob: 0.05 - orGroup: dressermainloot - - id: ClothingUniformJumpskirtColorWhite - prob: 0.05 - orGroup: dresserthirdloot - - id: ClothingUniformJumpsuitColorPink - prob: 0.05 - orGroup: dressermainloot - - id: ClothingUniformJumpskirtColorPink - prob: 0.05 - orGroup: dresserthirdloot - - id: ClothingUniformJumpsuitLoungewear - prob: 0.05 - orGroup: dressermainloot - - id: ClothingUniformJumpskirtBlackElegantDress - prob: 0.05 - orGroup: dressermainloot - - id: ClothingUniformJumpskirtRedElegantDress - prob: 0.05 - orGroup: dressermainloot - - id: ClothingUniformJumpskirtGreenElegantDress - prob: 0.05 - orGroup: dressermainloot - - id: ClothingUniformJumpskirtBlueElegantDress - prob: 0.05 - orGroup: dressermainloot - - id: ClothingUniformJumpskirtPurpleElegantDress - prob: 0.05 - orGroup: dressermainloot - - id: ClothingUniformJumpskirtCyanStripedDress - prob: 0.05 - orGroup: dressermainloot - - id: ClothingUniformJumpskirtRedStripedDress - prob: 0.05 - orGroup: dressermainloot - - id: ClothingUniformJumpskirtGreenStripedDress - prob: 0.05 - orGroup: dressermainloot - - id: ClothingUniformJumpskirtPinkStripedDress - prob: 0.05 - orGroup: dressermainloot - - id: ClothingUniformJumpskirtOrangeStripedDress - prob: 0.05 - orGroup: dressermainloot - - id: ClothingUniformJumpskirtPurpleTurtleneckDress - prob: 0.05 - orGroup: dressermainloot - - id: ClothingUniformJumpskirtRedTurtleneckDress - prob: 0.05 - orGroup: dressermainloot - - id: ClothingUniformJumpskirtGreenTurtleneckDress - prob: 0.05 - orGroup: dressermainloot - - id: ClothingUniformJumpskirtBlueTurtleneckDress - prob: 0.05 - orGroup: dressermainloot - - id: ClothingUniformJumpskirtYellowTurtleneckDress - prob: 0.05 - orGroup: dressermainloot - - id: ClothingUniformJumpskirtYellowOldDress - prob: 0.05 - orGroup: dressermainloot - - id: Pen # It`s pen. - prob: 0.03 - orGroup: dressersecondloot - - id: ClothingUniformJumpsuitColorBlue - prob: 0.03 - orGroup: dressermainloot - - id: ClothingUniformJumpskirtColorBlue - prob: 0.03 - orGroup: dresserthirdloot - - id: ClothingUniformJumpsuitColorYellow - prob: 0.03 - orGroup: dressermainloot - - id: ClothingUniformJumpskirtColorYellow - prob: 0.03 - orGroup: dressermainloot - - id: ClothingUniformJumpsuitColorGreen - prob: 0.03 - orGroup: dressermainloot - - id: ClothingUniformJumpskirtColorGreen - prob: 0.03 - orGroup: dresserthirdloot - - id: ClothingUniformJumpsuitColorOrange - prob: 0.03 - orGroup: dresserthirdloot - - id: ClothingUniformJumpskirtColorOrange - prob: 0.03 - orGroup: dressermainloot - - id: ClothingUniformJumpsuitColorRed - prob: 0.03 - orGroup: dressermainloot - - id: ClothingUniformJumpskirtColorRed - prob: 0.03 - orGroup: dressermainloot - - id: ClothingUniformJumpsuitColorPurple - prob: 0.03 - orGroup: dressermainloot - - id: ClothingUniformJumpskirtColorPurple - prob: 0.03 - orGroup: dressermainloot - - id: ClothingUniformJumpsuitColorDarkBlue - prob: 0.03 - orGroup: dressermainloot - - id: ClothingUniformJumpskirtColorDarkBlue - prob: 0.03 - orGroup: dressermainloot - - id: ClothingUniformJumpsuitColorTeal - prob: 0.03 - orGroup: dresserthirdloot - - id: ClothingUniformJumpskirtColorTeal - prob: 0.03 - orGroup: dresserthirdloot - - id: ClothingShoesColorBlack - prob: 0.03 - orGroup: dressermainloot - - id: ClothingNeckScarfStripedRed - prob: 0.03 - orGroup: dressermainloot - - id: ClothingNeckScarfStripedBlue - prob: 0.03 - orGroup: dressermainloot - - id: ClothingNeckScarfStripedGreen - prob: 0.03 - orGroup: dressermainloot - - id: ClothingHeadHatGreysoft - prob: 0.03 - orGroup: dresserthirdloot - - id: ClothingHeadHatCorpsoft - prob: 0.03 - orGroup: dresserthirdloot - - id: ClothingHeadHatBunny - prob: 0.03 - orGroup: dresserthirdloot - - id: ClothingOuterHoodieBlack - prob: 0.03 - orGroup: dressersecondloot - - id: BedsheetNT - prob: 0.03 - orGroup: dresserthirdloot - - id: BedsheetGrey - prob: 0.03 - orGroup: dressermainloot - - id: ClothingOuterWinterClown - prob: 0.03 - orGroup: dressersecondloot - - id: ClothingOuterCoatBomber - prob: 0.03 - orGroup: dressersecondloot - - id: ClothingEyesEyepatch - prob: 0.03 - orGroup: dressersecondloot - - id: ClothingHeadHatPaper - prob: 0.03 - orGroup: dresserthirdloot - - id: ClothingMaskBreath - prob: 0.03 - orGroup: dressersecondloot - - id: ClothingHeadHatWitch - prob: 0.03 - orGroup: dresserthirdloot - - id: ClothingOuterCoatLab - prob: 0.03 - orGroup: dressersecondloot - - id: ClothingHeadHatFedoraGrey - prob: 0.03 - orGroup: dresserthirdloot - - id: ClothingUniformJumpsuitHawaiBlue - prob: 0.03 - orGroup: dressermainloot - - id: ClothingHeadHatAnimalHeadslime - prob: 0.03 - orGroup: dresserthirdloot - - id: ClothingMultipleHeadphones - prob: 0.03 - orGroup: dresserthirdloot - - id: ClothingUnderSocksCoder - prob: 0.03 - orGroup: dressermainloot - - id: ClothingUnderSocksBee - prob: 0.03 - orGroup: dresserthirdloot - - id: ClothingHeadHatAnimalMonkey - prob: 0.03 - orGroup: dresserthirdloot - - id: ClothingShoesWizard - prob: 0.03 - orGroup: dressermainloot - - id: ClothingOuterDameDane - prob: 0.03 - orGroup: dressersecondloot - - id: ClothingHeadHatShrineMaidenWig - prob: 0.03 - orGroup: dresserthirdloot - - id: ClothingOuterPoncho - prob: 0.03 - orGroup: dresserthirdloot - - id: ClothingShoesBootsWork - prob: 0.03 - orGroup: dressermainloot - - id: ClothingOuterWinterCoat - prob: 0.03 - orGroup: dressersecondloot - - id: ClothingMaskFox - prob: 0.03 - orGroup: dressersecondloot - - id: ClothingEyesGlassesGar - prob: 0.03 - orGroup: dressersecondloot - - id: ClothingOuterCoatGentle - prob: 0.03 - orGroup: dressersecondloot - - id: ClothingHeadHatBeret - prob: 0.03 - orGroup: dresserthirdloot - - id: PlushieLizard - prob: 0.03 - orGroup: dresserthirdloot - - id: ClothingOuterSuitShrineMaiden - prob: 0.03 - orGroup: dressersecondloot - - id: ClothingOuterClownPriest - prob: 0.02 - orGroup: dressersecondloot - - id: ClothingHeadHatXmasCrown - prob: 0.02 - orGroup: dresserthirdloot - - id: ClothingMaskNeckGaiter - prob: 0.02 - orGroup: dressersecondloot - - id: ClothingHeadHatBeretBrigmedic - prob: 0.02 - orGroup: dresserthirdloot - - id: ClothingMaskGas - prob: 0.008 - orGroup: dressersecondloot - - id: CablecuffsBroken - prob: 0.008 - orGroup: dressersecondloot - - id: ClothingOuterVestHazard - prob: 0.008 - orGroup: dressersecondloot - - id: ClothingHandsGlovesLatex - prob: 0.008 - orGroup: dressermainloot - - id: ClothingHandsGlovesColorWhite - prob: 0.008 - orGroup: dressermainloot - - id: ClothingHandsGlovesBoxingYellow - prob: 0.008 - orGroup: dressermainloot - - id: ClothingOuterGhostSheet - prob: 0.008 - orGroup: dressersecondloot - - id: ClothingUniformJumpskirtJanimaid - prob: 0.005 - orGroup: dressermainloot - - id: ClothingUniformJumpskirtJanimaidmini - prob: 0.005 - orGroup: dressermainloot - - id: ClothingNeckScarfStripedSyndieRed - prob: 0.005 - orGroup: dressermainloot - - id: ClothingOuterCoatJensen - prob: 0.005 - orGroup: dressersecondloot - - id: ClothingMaskMuzzle - prob: 0.003 - orGroup: dressersecondloot - - id: ClothingHandsGlovesColorYellowBudget - prob: 0.002 - orGroup: dressermainloot - - id: ClothingHeadPyjamaSyndicatePink - prob: 0.002 - orGroup: dresserthirdloot - - id: ClothingUniformJumpsuitPyjamaSyndicatePink - prob: 0.002 - orGroup: dressermainloot - - id: ClothingHeadHatTacticalMaidHeadband - prob: 0.001 - orGroup: dresserthirdloot - - id: FoodTinMRE - prob: 0.010 - orGroup: dressermainloot - - id: FoodCornTrash - prob: 0.010 - orGroup: dressermainloot - - id: FoodTinPeachesMaintTrash - prob: 0.010 - orGroup: dressermainloot - - id: PaperRolling1 - prob: 0.010 - orGroup: dressermainloot - - id: FoodTinPeachesTrash - prob: 0.010 - orGroup: dressermainloot - - id: FoodFrozenPopsicleTrash - prob: 0.010 - orGroup: dressermainloot - - id: FoodPlateTrash - prob: 0.010 - orGroup: dressermainloot - - id: FoodFrozenSnowconeTrash - prob: 0.010 - orGroup: dressermainloot - - id: FoodTinBeansTrash - prob: 0.010 - orGroup: dressermainloot - - id: FoodTinMRETrash - prob: 0.010 - orGroup: dressermainloot - - id: TrashBananaPeel - prob: 0.010 - orGroup: dressermainloot - - id: FoodPlateSmallTrash - prob: 0.010 - orGroup: dressermainloot - - id: FoodBowlBigTrash - prob: 0.010 - orGroup: dressermainloot - - id: FoodTinMRE - prob: 0.010 - orGroup: dressersecondloot - - id: FoodCornTrash - prob: 0.010 - orGroup: dressersecondloot - - id: FoodTinPeachesMaintTrash - prob: 0.010 - orGroup: dressersecondloot - - id: PaperRolling1 - prob: 0.010 - orGroup: dressersecondloot - - id: FoodTinPeachesTrash - prob: 0.010 - orGroup: dressersecondloot - - id: FoodFrozenPopsicleTrash - prob: 0.010 - orGroup: dressersecondloot - - id: FoodPlateTrash - prob: 0.010 - orGroup: dressersecondloot - - id: FoodFrozenSnowconeTrash - prob: 0.010 - orGroup: dressersecondloot - - id: FoodTinBeansTrash - prob: 0.010 - orGroup: dressersecondloot - - id: FoodTinMRETrash - prob: 0.010 - orGroup: dressersecondloot - - id: TrashBananaPeel - prob: 0.010 - orGroup: dressersecondloot - - id: FoodPlateSmallTrash - prob: 0.010 - orGroup: dressersecondloot - - id: FoodBowlBigTrash - prob: 0.010 - orGroup: dressersecondloot - - id: FoodTinMRE - prob: 0.010 - orGroup: dresserthirdloot - - id: FoodCornTrash - prob: 0.010 - orGroup: dresserthirdloot - - id: FoodTinPeachesMaintTrash - prob: 0.010 - orGroup: dresserthirdloot - - id: PaperRolling1 - prob: 0.010 - orGroup: dresserthirdloot - - id: FoodTinPeachesTrash - prob: 0.010 - orGroup: dresserthirdloot - - id: FoodFrozenPopsicleTrash - prob: 0.010 - orGroup: dresserthirdloot - - id: FoodPlateTrash - prob: 0.010 - orGroup: dresserthirdloot - - id: FoodFrozenSnowconeTrash - prob: 0.010 - orGroup: dresserthirdloot - - id: FoodTinBeansTrash - prob: 0.010 - orGroup: dresserthirdloot - - id: FoodTinMRETrash - prob: 0.010 - orGroup: dresserthirdloot - - id: TrashBananaPeel - prob: 0.010 - orGroup: dresserthirdloot - - id: FoodPlateSmallTrash - prob: 0.010 - orGroup: dresserthirdloot - - id: FoodBowlBigTrash - prob: 0.010 - orGroup: dresserthirdloot - - id: ClothingUniformJumpskirtTacticalMaid - prob: 0.001 - orGroup: dressermainloot - - id: ClothingUniformJumpsuitNanotrasen - prob: 0.001 - orGroup: dressermainloot - - id: Shiv - prob: 0.001 - orGroup: dressersecondloot - - id: BikeHorn - prob: 0.001 - orGroup: dressersecondloot - - id: DrinkWaterBottleFull - prob: 0.001 - orGroup: dressersecondloot - - id: BrokenBottle - prob: 0.001 - orGroup: dressersecondloot - - id: FoodMeatRotten - prob: 0.001 - orGroup: dressersecondloot - - id: ClothingOuterSkub - prob: 0.0008 - orGroup: dressersecondloot - - id: ClothingNeckCloakMoth - prob: 0.0003 - orGroup: dresserthirdloot - - id: ClothingUniformJumpsuitPrisoner - prob: 0.0003 - orGroup: dresserthirdloot - - id: ClothingUniformJumpskirtPrisoner - prob: 0.0003 - orGroup: dresserthirdloot - - id: ClothingOuterWinterCentcom - prob: 0.0001 - orGroup: dresserthirdloot - - id: ClothingUniformJumpskirtOfLife - prob: 0.0001 - orGroup: dresserthirdloot - - id: ClothingUniformJumpsuitSyndieFormal - prob: 0.0001 - orGroup: dresserthirdloot - - id: ClothingUniformJumpskirtSyndieFormalDress - prob: 0.0001 - orGroup: dresserthirdloot - - id: ClothingOuterWinterSyndie - prob: 0.0001 - orGroup: dresserthirdloot - - id: ClothingHeadHatRichard - prob: 0.0001 - orGroup: dresserthirdloot - - id: ClothingOuterDogi - prob: 0.00001 - orGroup: dressersecondloot - - id: HeadHuman - prob: 0.00001 - orGroup: dressersecondloot - - id: OrganHumanKidneys - prob: 0.00001 - orGroup: dressersecondloot + - type: EntityTableContainerFill #TODO: make these tables in any way consistent + containers: + storagebase: !type:AllSelector + children: + - !type:NestedSelector + tableId: DresserMainLootEntityTable + - !type:NestedSelector + tableId: DresserSecondLootEntityTable + - !type:NestedSelector + tableId: DresserThirdLootEntityTable + +- type: entityTable + id: DresserMainLootEntityTable + table: !type:GroupSelector + children: + - id: ClothingNeckLGBTPin + weight: 0.06 + - id: ClothingUniformJumpsuitColorGrey + weight: 0.06 + - id: ClothingUniformJumpskirtColorGrey + weight: 0.06 + - id: ClothingUniformJumpsuitColorWhite + weight: 0.05 + - id: ClothingUniformJumpsuitColorPink + weight: 0.05 + - id: ClothingUniformJumpsuitLoungewear + weight: 0.05 + - id: ClothingUniformJumpskirtBlackElegantDress + weight: 0.05 + - id: ClothingUniformJumpskirtRedElegantDress + weight: 0.05 + - id: ClothingUniformJumpskirtGreenElegantDress + weight: 0.05 + - id: ClothingUniformJumpskirtBlueElegantDress + weight: 0.05 + - id: ClothingUniformJumpskirtPurpleElegantDress + weight: 0.05 + - id: ClothingUniformJumpskirtCyanStripedDress + weight: 0.05 + - id: ClothingUniformJumpskirtRedStripedDress + weight: 0.05 + - id: ClothingUniformJumpskirtGreenStripedDress + weight: 0.05 + - id: ClothingUniformJumpskirtPinkStripedDress + weight: 0.05 + - id: ClothingUniformJumpskirtOrangeStripedDress + weight: 0.05 + - id: ClothingUniformJumpskirtPurpleTurtleneckDress + weight: 0.05 + - id: ClothingUniformJumpskirtRedTurtleneckDress + weight: 0.05 + - id: ClothingUniformJumpskirtGreenTurtleneckDress + weight: 0.05 + - id: ClothingUniformJumpskirtBlueTurtleneckDress + weight: 0.05 + - id: ClothingUniformJumpskirtYellowTurtleneckDress + weight: 0.05 + - id: ClothingUniformJumpskirtYellowOldDress + weight: 0.05 + - id: ClothingUniformJumpsuitColorBlue + weight: 0.03 + - id: ClothingUniformJumpsuitColorYellow + weight: 0.03 + - id: ClothingUniformJumpskirtColorYellow + weight: 0.03 + - id: ClothingUniformJumpsuitColorGreen + weight: 0.03 + - id: ClothingUniformJumpskirtColorOrange + weight: 0.03 + - id: ClothingUniformJumpsuitColorRed + weight: 0.03 + - id: ClothingUniformJumpskirtColorRed + weight: 0.03 + - id: ClothingUniformJumpsuitColorPurple + weight: 0.03 + - id: ClothingUniformJumpskirtColorPurple + weight: 0.03 + - id: ClothingUniformJumpsuitColorDarkBlue + weight: 0.03 + - id: ClothingUniformJumpskirtColorDarkBlue + weight: 0.03 + - id: ClothingShoesColorBlack + weight: 0.03 + - id: ClothingNeckScarfStripedRed + weight: 0.03 + - id: ClothingNeckScarfStripedBlue + weight: 0.03 + - id: ClothingNeckScarfStripedGreen + weight: 0.03 + - id: BedsheetGrey + weight: 0.03 + - id: ClothingUniformJumpsuitHawaiBlue + weight: 0.03 + - id: ClothingUnderSocksCoder + weight: 0.03 + - id: ClothingShoesWizard + weight: 0.03 + - id: ClothingShoesBootsWork + weight: 0.03 + - id: ClothingHandsGlovesLatex + weight: 0.008 + - id: ClothingHandsGlovesColorWhite + weight: 0.008 + - id: ClothingHandsGlovesBoxingYellow + weight: 0.008 + - id: ClothingUniformJumpskirtJanimaid + weight: 0.005 + - id: ClothingUniformJumpskirtJanimaidmini + weight: 0.005 + - id: ClothingNeckScarfStripedSyndieRed + weight: 0.005 + - id: ClothingHandsGlovesColorYellowBudget + weight: 0.002 + - id: ClothingUniformJumpsuitPyjamaSyndicatePink + weight: 0.002 + - id: FoodTinMRE + weight: 0.010 + - id: FoodCornTrash + weight: 0.010 + - id: FoodTinPeachesMaintTrash + weight: 0.010 + - id: PaperRolling1 + weight: 0.010 + - id: FoodTinPeachesTrash + weight: 0.010 + - id: FoodFrozenPopsicleTrash + weight: 0.010 + - id: FoodPlateTrash + weight: 0.010 + - id: FoodFrozenSnowconeTrash + weight: 0.010 + - id: FoodTinBeansTrash + weight: 0.010 + - id: FoodTinMRETrash + weight: 0.010 + - id: TrashBananaPeel + weight: 0.010 + - id: FoodPlateSmallTrash + weight: 0.010 + - id: FoodBowlBigTrash + weight: 0.010 + - id: ClothingUniformJumpskirtTacticalMaid + weight: 0.001 + - id: ClothingUniformJumpsuitNanotrasen + weight: 0.001 + +- type: entityTable + id: DresserSecondLootEntityTable + table: !type:GroupSelector + children: + - id: Pen # It`s pen. + weight: 0.03 + - id: ClothingOuterHoodieBlack + weight: 0.03 + - id: ClothingOuterWinterClown + weight: 0.03 + - id: ClothingOuterCoatBomber + weight: 0.03 + - id: ClothingEyesEyepatch + weight: 0.03 + - id: ClothingMaskBreath + weight: 0.03 + - id: ClothingOuterCoatLab + weight: 0.03 + - id: ClothingOuterDameDane + weight: 0.03 + - id: ClothingOuterWinterCoat + weight: 0.03 + - id: ClothingMaskFox + weight: 0.03 + - id: ClothingEyesGlassesGar + weight: 0.03 + - id: ClothingOuterCoatGentle + weight: 0.03 + - id: ClothingOuterSuitShrineMaiden + weight: 0.03 + - id: ClothingOuterClownPriest + weight: 0.02 + - id: ClothingMaskNeckGaiter + weight: 0.02 + - id: ClothingMaskGas + weight: 0.008 + - id: CablecuffsBroken + weight: 0.008 + - id: ClothingOuterVestHazard + weight: 0.008 + - id: ClothingOuterGhostSheet + weight: 0.008 + - id: ClothingOuterCoatJensen + weight: 0.005 + - id: ClothingMaskMuzzle + weight: 0.003 + - id: FoodTinMRE + weight: 0.010 + - id: FoodCornTrash + weight: 0.010 + - id: FoodTinPeachesMaintTrash + weight: 0.010 + - id: PaperRolling1 + weight: 0.010 + - id: FoodTinPeachesTrash + weight: 0.010 + - id: FoodFrozenPopsicleTrash + weight: 0.010 + - id: FoodPlateTrash + weight: 0.010 + - id: FoodFrozenSnowconeTrash + weight: 0.010 + - id: FoodTinBeansTrash + weight: 0.010 + - id: FoodTinMRETrash + weight: 0.010 + - id: TrashBananaPeel + weight: 0.010 + - id: FoodPlateSmallTrash + weight: 0.010 + - id: FoodBowlBigTrash + weight: 0.010 + - id: Shiv + weight: 0.001 + - id: BikeHorn + weight: 0.001 + - id: DrinkWaterBottleFull + weight: 0.001 + - id: BrokenBottle + weight: 0.001 + - id: FoodMeatRotten + weight: 0.001 + - id: ClothingOuterSkub + weight: 0.0008 + - id: ClothingOuterDogi + weight: 0.00001 + - id: HeadHuman + weight: 0.00001 + - id: OrganHumanKidneys + weight: 0.00001 + +- type: entityTable + id: DresserThirdLootEntityTable + table: !type:GroupSelector + children: + - id: ClothingUniformJumpskirtColorWhite + weight: 0.05 + - id: ClothingUniformJumpskirtColorPink + weight: 0.05 + - id: ClothingUniformJumpskirtColorBlue + weight: 0.03 + - id: ClothingUniformJumpskirtColorGreen + weight: 0.03 + - id: ClothingUniformJumpsuitColorOrange + weight: 0.03 + - id: ClothingUniformJumpsuitColorTeal + weight: 0.03 + - id: ClothingUniformJumpskirtColorTeal + weight: 0.03 + - id: ClothingHeadHatGreysoft + weight: 0.03 + - id: ClothingHeadHatCorpsoft + weight: 0.03 + - id: ClothingHeadHatBunny + weight: 0.03 + - id: BedsheetNT + weight: 0.03 + - id: ClothingHeadHatPaper + weight: 0.03 + - id: ClothingHeadHatWitch + weight: 0.03 + - id: ClothingHeadHatFedoraGrey + weight: 0.03 + - id: ClothingHeadHatAnimalHeadslime + weight: 0.03 + - id: ClothingMultipleHeadphones + weight: 0.03 + - id: ClothingUnderSocksBee + weight: 0.03 + - id: ClothingHeadHatAnimalMonkey + weight: 0.03 + - id: ClothingHeadHatShrineMaidenWig + weight: 0.03 + - id: ClothingOuterPoncho + weight: 0.03 + - id: ClothingHeadHatBeret + weight: 0.03 + - id: PlushieLizard + weight: 0.03 + - id: ClothingHeadHatXmasCrown + weight: 0.02 + - id: ClothingHeadHatBeretBrigmedic + weight: 0.02 + - id: ClothingHeadPyjamaSyndicatePink + weight: 0.002 + - id: ClothingHeadHatTacticalMaidHeadband + weight: 0.001 + - id: FoodTinMRE + weight: 0.010 + - id: FoodCornTrash + weight: 0.010 + - id: FoodTinPeachesMaintTrash + weight: 0.010 + - id: PaperRolling1 + weight: 0.010 + - id: FoodTinPeachesTrash + weight: 0.010 + - id: FoodFrozenPopsicleTrash + weight: 0.010 + - id: FoodPlateTrash + weight: 0.010 + - id: FoodFrozenSnowconeTrash + weight: 0.010 + - id: FoodTinBeansTrash + weight: 0.010 + - id: FoodTinMRETrash + weight: 0.010 + - id: TrashBananaPeel + weight: 0.010 + - id: FoodPlateSmallTrash + weight: 0.010 + - id: FoodBowlBigTrash + weight: 0.010 + - id: ClothingNeckCloakMoth + weight: 0.0003 + - id: ClothingUniformJumpsuitPrisoner + weight: 0.0003 + - id: ClothingUniformJumpskirtPrisoner + weight: 0.0003 + - id: ClothingOuterWinterCentcom + weight: 0.0001 + - id: ClothingUniformJumpskirtOfLife + weight: 0.0001 + - id: ClothingUniformJumpsuitSyndieFormal + weight: 0.0001 + - id: ClothingUniformJumpskirtSyndieFormalDress + weight: 0.0001 + - id: ClothingOuterWinterSyndie + weight: 0.0001 + - id: ClothingHeadHatRichard + weight: 0.0001