From: āda Date: Sun, 14 Dec 2025 20:39:25 +0000 (-0600) Subject: Toys entity tables (#41840) X-Git-Url: https://git.smokeofanarchy.ru/gitweb.cgi?a=commitdiff_plain;h=7eb797e7e5779831c6c6fcd39c36957023856fcb;p=space-station-14.git Toys entity tables (#41840) * ai talks * kill cheepo * mech figures * finished * touchup * wider net * final changes * never final * fix test fail * commit * self review * self review 2 * buff * nerf * microbalance continues until i'm happy * requested and more * toys.yml is scary * pace yourself, hun * finished tables * update related tables * finish tables * spawners * new item * other tables and cargo crate * move board games * commit * last changes * last last changes * bounty changes * remove pies :o( * readjust prices * requested microbalance * friends for life --------- Co-authored-by: iaada --- diff --git a/Resources/Locale/en-US/cargo/bounties.ftl b/Resources/Locale/en-US/cargo/bounties.ftl index 694f26249a..636d8865c7 100644 --- a/Resources/Locale/en-US/cargo/bounties.ftl +++ b/Resources/Locale/en-US/cargo/bounties.ftl @@ -132,7 +132,7 @@ bounty-description-food = After the rat king invasion, a neighboring Unathi stat bounty-description-fruit = A heroic monkey helped the chaplain catch a troublemaker hiding in the chapel, and the crew wants to reward him for his good work. bounty-description-vegetable = The new chef is a vegetarian, and botany can't keep up with their demands. We need some additional veggies to help keep things stocked. bounty-description-chili = Today's the CentComm Chili Cookoff, and, well, a few of us forgot to make some. Please help cover for us. -bounty-description-rollerskates = CentComm Security is proposing a new strategy for helping officers win foot pursuits. Send them a couple so they can learn how bad an idea this is. +bounty-description-rollerskates = CentComm Security is proposing a new strategy for helping officers win foot pursuits. Send them a pair so they can learn how bad an idea this is. bounty-description-bedsheet = Someone in Atmos keeps turning down the heater, and we're all shivering in our beds. Please send us some extra sheets to stay warm. bounty-description-bandana = Bzzzt... Transmission from prison planet OC-1001: We're... reorganizing our command structure. Send us some bandanas so we can tell gan- I mean, departments apart. bounty-description-steak = The vegetarian cook is refusing to make us anything with meat, and the lizards are getting restless. Can you smuggle us a few steaks to keep them happy? diff --git a/Resources/Prototypes/Catalog/Bounties/bounties.yml b/Resources/Prototypes/Catalog/Bounties/bounties.yml index a7514c7fd0..a22efa776f 100644 --- a/Resources/Prototypes/Catalog/Bounties/bounties.yml +++ b/Resources/Prototypes/Catalog/Bounties/bounties.yml @@ -600,11 +600,10 @@ - type: cargoBounty id: BountyRollerskates - reward: 6500 + reward: 1400 description: bounty-description-rollerskates entries: - name: bounty-item-rollerskates - amount: 2 whitelist: components: - Skates diff --git a/Resources/Prototypes/Catalog/Fills/Boxes/general.yml b/Resources/Prototypes/Catalog/Fills/Boxes/general.yml index b8aa2600c5..4618fb6653 100644 --- a/Resources/Prototypes/Catalog/Fills/Boxes/general.yml +++ b/Resources/Prototypes/Catalog/Fills/Boxes/general.yml @@ -468,11 +468,17 @@ amount: 4 - type: entity - name: darts box parent: BoxCardboard id: BoxDarts + name: darts box description: A box filled with colorful darts. components: + - type: Item + size: Normal + shape: + - 0,0,1,1 + - type: Storage + maxItemSize: Tiny - type: Sprite layers: - state: box diff --git a/Resources/Prototypes/Catalog/Fills/Crates/cargo.yml b/Resources/Prototypes/Catalog/Fills/Crates/cargo.yml index b3f0325529..4a7edeb041 100644 --- a/Resources/Prototypes/Catalog/Fills/Crates/cargo.yml +++ b/Resources/Prototypes/Catalog/Fills/Crates/cargo.yml @@ -121,13 +121,10 @@ - id: WeaponShotgunHandmade - id: WeaponFlareGun - id: Bola - - id: ToySword - id: Shovel - - id: WeaponWaterPistol - - id: WeaponWaterBlaster - id: WeaponTurretXeno - - id: WeaponRifleFoam - weight: 3 + - !type:NestedSelector + tableId: AllToyWeaponsTable - type: entityTable id: LotteryClothingEntityTable diff --git a/Resources/Prototypes/Catalog/Fills/Crates/fun.yml b/Resources/Prototypes/Catalog/Fills/Crates/fun.yml index c9bb5f8fc7..35d94accab 100644 --- a/Resources/Prototypes/Catalog/Fills/Crates/fun.yml +++ b/Resources/Prototypes/Catalog/Fills/Crates/fun.yml @@ -1,116 +1,3 @@ -- type: entityTable - id: AllPlushiesTable - table: !type:GroupSelector - children: - - !type:NestedSelector - tableId: AllLizardPlushieTable - - id: PlushieNuke - - id: PlushieSlime - - id: PlushieSnake - - id: PlushieExperiment - - id: PlushieVox - - id: PlushieRouny - - id: PlushieAtmosian - - id: PlushieDiona - - id: PlushieXeno - - id: PlushieHampter - - id: PlushieMoth - - id: PlushieArachind - - id: PlushiePenguin - - id: PlushieVulp - - !type:GroupSelector - children: - - id: PlushieBee - - id: PlushieRGBee - weight: 0.1 - - !type:GroupSelector - children: - - id: PlushieCarp - - id: PlushieHolocarp - weight: 0.25 - - id: PlushieMagicarp - weight: 0.25 - - id: PlushieRainbowCarp - weight: 0.15 - - !type:GroupSelector - children: - - id: PlushieSharkBlue - - id: PlushieSharkGrey - - id: PlushieSharkPink - - !type:GroupSelector # Toy plushies - children: - - id: ToyIan - - id: ToyAmongPequeno - - id: ToyMouse - - !type:GroupSelector # Giant plushies - children: - - id: PlushieNar - - id: PlushieRatvar - - !type:GroupSelector # Rare plushies - weight: 0.1 # 1 in >210 - children: - - id: PlushieHuman - - id: PlushieGhost - - id: PlushieLamp - - !type:GroupSelector # Legendary plushies - weight: 0.002 # 1 in >10,500 - children: - - id: PlushieThrongler - - id: PlushieGhostRevenant # You got the god roll, and failed - -- type: entityTable - id: AllLizardPlushieTable - table: !type:GroupSelector - children: - - id: PlushieLizard - weight: 8 - - id: PlushieSpaceLizard - weight: 1 - - id: PlushieLizardInversed - weight: 0.1 # 1 in >100 - - !type:GroupSelector # Lizard gets a job table - children: - - id: PlushieLizardJobAtmospherictechnician - - id: PlushieLizardJobBartender - - id: PlushieLizardJobBotanist - - id: PlushieLizardJobBoxer - - id: PlushieLizardJobCaptain - - id: PlushieLizardJobCargotechnician - - id: PlushieLizardJobChaplain - - id: PlushieLizardJobChef - - id: PlushieLizardJobChemist - - id: PlushieLizardJobChiefengineer - - id: PlushieLizardJobChiefmedicalofficer - - id: PlushieLizardJobClown # :o) - - id: PlushieLizardJobDetective - - id: PlushieLizardJobHeadofpersonnel - - id: PlushieLizardJobHeadofsecurity - - id: PlushieLizardJobJanitor - - id: PlushieLizardJobLawyer - - id: PlushieLizardJobLibrarian - - id: PlushieLizardJobMedicaldoctor - - id: PlushieLizardJobMedicalintern - - id: PlushieLizardJobMime # - - id: PlushieLizardJobMusician - - id: PlushieLizardJobParamedic - - id: PlushieLizardJobPassenger - - id: PlushieLizardJobPsychologist - - id: PlushieLizardJobQuartermaster - - id: PlushieLizardJobReporter - - id: PlushieLizardJobResearchassistant - - id: PlushieLizardJobResearchdirector - - id: PlushieLizardJobSalvagespecialist - - id: PlushieLizardJobScientist - - id: PlushieLizardJobSecuritycadet - - id: PlushieLizardJobSecurityofficer - - id: PlushieLizardJobServiceworker - - id: PlushieLizardJobStationengineer - - id: PlushieLizardJobTechnicalassistant - - id: PlushieLizardJobZookeeper - - id: PlushieLizardJobMultiweh - weight: 0.5 # 1 in >800 - - - type: entityTable id: AllPottedPlantsTable table: !type:GroupSelector @@ -456,16 +343,15 @@ parent: CratePlastic id: CrateFunFoamGuns name: Foam Force crate - description: Contains four Foam Force rifles, some grenades, and extra ammo. It's [REDACTED] or nothing! + description: Contains four Foam Force Battle Kits™. It's [REDACTED] or nothing! components: - type: EntityTableContainerFill containers: entity_storage: !type:AllSelector children: - - id: WeaponRifleFoam - amount: 4 - - id: BoxDonkSoftBox - amount: 2 + - !type:NestedSelector + tableId: RandomFoamGunTable + rolls: 4 - id: GrenadeFoamDart amount: 4 @@ -516,25 +402,18 @@ 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:NestedSelector + tableId: AllToyWeaponsTable + rolls: 2 + - !type:NestedSelector + tableId: AllToySoundMakerTable + rolls: 2 + - !type:NestedSelector + tableId: AllMiscToysTable + rolls: 2 + - !type:NestedSelector # Extras rolls for extra variety + tableId: AllToysTable + rolls: 2 - type: entity parent: CrateGenericSteel diff --git a/Resources/Prototypes/Catalog/Fills/Crates/service.yml b/Resources/Prototypes/Catalog/Fills/Crates/service.yml index 961f09bcd2..9d53c1e2b4 100644 --- a/Resources/Prototypes/Catalog/Fills/Crates/service.yml +++ b/Resources/Prototypes/Catalog/Fills/Crates/service.yml @@ -125,24 +125,37 @@ containers: entity_storage: !type:AllSelector children: - - id: ClothingUniformJumpskirtPerformer - - id: ClothingShoesBootsPerformer - - id: ClothingHeadPerformerWig + - id: BarberScissors - 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 + - id: ClothingHeadHatMagician + - !type:AllSelector # Cloaks + children: + - id: ClothingNeckCloakMoth + - id: ClothingNeckCloakVoid + - !type:AllSelector # Clown starter kit + children: + - id: ClothingMaskClown + - id: ClownRecorder + - !type:GroupSelector + children: + - id: ClothingShoesClown + - id: ClothingShoesClownLarge + weight: 0.1 + - !type:NestedSelector + tableId: RandomBikeHornTable + - !type:AllSelector # Mime starter kit + children: + - id: ClothingMaskMime + - id: ClothingBeltSuspendersRed + - id: ClothingBeltSuspendersBlack + - !type:AllSelector # Performer starter kit + children: + - id: ClothingUniformJumpskirtPerformer + - id: ClothingShoesBootsPerformer + - id: ClothingHeadPerformerWig - type: entity parent: CrateGenericSteel diff --git a/Resources/Prototypes/Entities/Clothing/Back/smuggler.yml b/Resources/Prototypes/Entities/Clothing/Back/smuggler.yml index 3a4495f895..8545dab9a6 100644 --- a/Resources/Prototypes/Entities/Clothing/Back/smuggler.yml +++ b/Resources/Prototypes/Entities/Clothing/Back/smuggler.yml @@ -76,21 +76,9 @@ components: - type: EntityTableContainerFill containers: - storagebase: !type:AllSelector - children: - - id: SpeedLoaderCap - amount: !type:RangeNumberSelector - range: 4, 8 - - !type:GroupSelector - children: - - id: RevolverCapGun - amount: !type:RangeNumberSelector - range: 4, 6 - weight: 95 - - id: RevolverCapGunFake - amount: !type:RangeNumberSelector - range: 1, 6 - weight: 5 + storagebase: !type:NestedSelector + tableId: RandomCapGunTable + rolls: 4, 7 - type: entity parent: ClothingBackpackSatchelSmuggler diff --git a/Resources/Prototypes/Entities/Markers/Spawners/Random/maintenance.yml b/Resources/Prototypes/Entities/Markers/Spawners/Random/maintenance.yml index 09378f25cd..f89ff9a433 100644 --- a/Resources/Prototypes/Entities/Markers/Spawners/Random/maintenance.yml +++ b/Resources/Prototypes/Entities/Markers/Spawners/Random/maintenance.yml @@ -6,6 +6,9 @@ - !type:GroupSelector weight: 75 children: + - !type:NestedSelector + weight: 5 # Roughly 7% chance + tableId: AllToysTable # Smoker's specialty - !type:AllSelector children: @@ -112,13 +115,7 @@ - id: ClothingNeckCloakEnby - id: ClothingNeckCloakPan - id: ToyFigurineSkeleton - - id: Basketball - - id: Football - - id: TennisBall - - id: BalloonNT - - id: BalloonCorgi - id: MysteryFigureBox - - id: RubberChicken # Cult - !type:AllSelector children: @@ -164,17 +161,12 @@ - !type:GroupSelector weight: 2 children: - - id: Skub - - id: PonderingOrb - - id: CluwneHorn - - id: ClothingShoesSkates - id: DrinkMugDog - id: CigarGold - id: ClothingUniformJumpsuitFamilyGuy - id: WristwatchGold - id: RubberStampGreytide - id: MysteryLighterBox - - id: GoldenPersonalAI - type: entity name: Maint Loot Spawner @@ -363,6 +355,8 @@ - id: SawImprov - id: HydroponicsToolMiniHoe - id: ClothingHandsKnuckleDusters + - !type:NestedSelector + tableId: AllToyWeaponsTable - type: entity name: Maint Loot Spawner diff --git a/Resources/Prototypes/Entities/Markers/Spawners/Random/toy.yml b/Resources/Prototypes/Entities/Markers/Spawners/Random/toy.yml index a8128e0f5a..c7ef7f4a07 100644 --- a/Resources/Prototypes/Entities/Markers/Spawners/Random/toy.yml +++ b/Resources/Prototypes/Entities/Markers/Spawners/Random/toy.yml @@ -1,4 +1,139 @@ -- type: entityTable # Max size 1x2 +# Items in this table are generally useless. They don't help in most situations and aren't interesting to serious people. +# If you're wondering if an entity should go in this table, ask your inner child / local clown. +- type: entityTable # size 2x4 or 3x3 # price 100 + id: AllToysTable + table: !type:GroupSelector + children: + - !type:GroupSelector # Boring toys (subjective) :o) + weight: 0.5 # 1 in 7 + children: + - !type:NestedSelector + tableId: AllPlushiesTable + - !type:NestedSelector + tableId: AllFigurinesTable + - !type:NestedSelector + tableId: AllToyWeaponsTable + - !type:NestedSelector + tableId: AllMiscToysTable + - !type:NestedSelector + tableId: AllToySoundMakerTable + +# Soft friends to play with, cut open with a knife, and throw away when you need space +- type: entityTable # size ginormous # price 5 + id: AllPlushiesTable + table: !type:GroupSelector + children: + - !type:NestedSelector + tableId: AllLizardPlushieTable + - id: PlushieNuke + - id: PlushieSlime + - id: PlushieSnake + - id: PlushieExperiment + - id: PlushieVox + - id: PlushieRouny + - id: PlushieAtmosian + - id: PlushieDiona + - id: PlushieXeno + - id: PlushieHampter + - id: PlushieMoth + - id: PlushieArachind + - id: PlushiePenguin + - id: PlushieVulp + - !type:GroupSelector + children: + - id: PlushieBee + - id: PlushieRGBee + weight: 0.1 + - !type:GroupSelector + children: + - id: PlushieCarp + - id: PlushieHolocarp + weight: 0.25 + - id: PlushieMagicarp + weight: 0.25 + - id: PlushieRainbowCarp + weight: 0.15 + - !type:GroupSelector + children: + - id: PlushieSharkBlue + - id: PlushieSharkGrey + - id: PlushieSharkPink + - !type:GroupSelector # Toy plushies + children: + - id: ToyIan + - id: ToyAmongPequeno + - id: ToyMouse + - !type:GroupSelector # Giant plushies + children: + - id: PlushieNar + - id: PlushieRatvar + - !type:GroupSelector # Rare plushies + weight: 0.1 # 1 in >210 + children: + - id: PlushieHuman + - id: PlushieGhost + - id: PlushieLamp + - !type:GroupSelector # Legendary plushies + weight: 0.002 # 1 in >10,500 + children: + - id: PlushieThrongler + - id: PlushieGhostRevenant # You got the god roll, and failed + +# Weh! +- type: entityTable + id: AllLizardPlushieTable + table: !type:GroupSelector + children: + - id: PlushieLizard + weight: 8 + - id: PlushieSpaceLizard + weight: 1 + - id: PlushieLizardInversed + weight: 0.1 # 1 in >100 + - !type:GroupSelector # Lizard gets a job table + children: + - id: PlushieLizardJobAtmospherictechnician + - id: PlushieLizardJobBartender + - id: PlushieLizardJobBotanist + - id: PlushieLizardJobBoxer + - id: PlushieLizardJobCaptain + - id: PlushieLizardJobCargotechnician + - id: PlushieLizardJobChaplain + - id: PlushieLizardJobChef + - id: PlushieLizardJobChemist + - id: PlushieLizardJobChiefengineer + - id: PlushieLizardJobChiefmedicalofficer + - id: PlushieLizardJobClown # :o) + - id: PlushieLizardJobDetective + - id: PlushieLizardJobHeadofpersonnel + - id: PlushieLizardJobHeadofsecurity + - id: PlushieLizardJobJanitor + - id: PlushieLizardJobLawyer + - id: PlushieLizardJobLibrarian + - id: PlushieLizardJobMedicaldoctor + - id: PlushieLizardJobMedicalintern + - id: PlushieLizardJobMime # + - id: PlushieLizardJobMusician + - id: PlushieLizardJobParamedic + - id: PlushieLizardJobPassenger + - id: PlushieLizardJobPsychologist + - id: PlushieLizardJobQuartermaster + - id: PlushieLizardJobReporter + - id: PlushieLizardJobResearchassistant + - id: PlushieLizardJobResearchdirector + - id: PlushieLizardJobSalvagespecialist + - id: PlushieLizardJobScientist + - id: PlushieLizardJobSecuritycadet + - id: PlushieLizardJobSecurityofficer + - id: PlushieLizardJobServiceworker + - id: PlushieLizardJobStationengineer + - id: PlushieLizardJobTechnicalassistant + - id: PlushieLizardJobZookeeper + - id: PlushieLizardJobMultiweh + weight: 0.5 # 1 in >800 + +# Figurines representing all your favorite coworkers +- type: entityTable # size 1x2 # price 75 id: AllFigurinesTable table: !type:GroupSelector children: @@ -70,7 +205,8 @@ - !type:NestedSelector tableId: AllFigurineMechsTable -- type: entityTable # Max size 1x2 +# Figurines representing the hopes and dreams of the robotics department +- type: entityTable # size 1x2 # price 75 id: AllFigurineMechsTable table: !type:GroupSelector children: @@ -86,6 +222,186 @@ - id: ToyPhazon - id: ToyReticence +# Items that are used to "attack" people. Legitimate combat use for these is limited +- type: entityTable # size 2x4 # price 100 + id: AllToyWeaponsTable + table: !type:GroupSelector + children: + - !type:GroupSelector # Swords type group + children: + - id: ToyHammer + - id: ToySword + - id: FoamBlade + - id: FoamCutlass + - id: CardSword + - !type:GroupSelector # Throwing type group + rolls: 2 # Expendables need restocks + children: + - id: SnapPopBox + - id: BoxDarts + - id: GrenadeFoamDart + - !type:GroupSelector # REAL fake grenades + weight: 0.05 # 2 in 186. Rare in order to not spoil the surprise + children: + - id: GrenadeDummy + - id: SyndieTrickyBomb + - !type:GroupSelector # Guns type group + children: + - id: WeaponStickyHand + - !type:GroupSelector # Water subgroup + children: + - id: WeaponWaterBlaster + - id: WeaponWaterPistol + - !type:NestedSelector + tableId: RandomFoamGunTable + - !type:NestedSelector + tableId: RandomCapGunTable + +- type: entityTable # price 100 + id: RandomFoamGunTable + table: !type:AllSelector # Need to spawn with ammo + children: + - !type:GroupSelector + children: + - id: FoamCrossbow + - id: WeaponRifleFoam + - id: BoxDonkSoftBox + +- type: entityTable + id: RandomCapGunTable + table: !type:AllSelector + children: + - !type:GroupSelector # real or fake? + children: + - id: RevolverCapGun + - id: RevolverCapGunFake + weight: 0.01 # 1 in 101 + - !type:GroupSelector # ready for reload + prob: 0.9 + children: + - id: SpeedLoaderCap + - id: BoxCartridgeCap + +# A group of items with fun or unique properties. Highly varied (some are more fun than others) +- type: entityTable # size 3x3 # price 100 + id: AllMiscToysTable + table: !type:GroupSelector + children: + - !type:NestedSelector + tableId: AllCrayonsTable + - id: CrayonBox + - id: PlasticBanana + - id: NukeDiskFake + - id: DiceBag + - id: SpectralLocator + - id: BarberScissors + - id: SprayFlowerPin + - id: ClothingShoesSkates + - id: CrazyGlue + - id: CrazyLube + - !type:NestedSelector + tableId: AllBoardGamesTable + - !type:GroupSelector # Where there's Chips there's Dips + children: + - id: MrChips + - id: MrDips + - !type:GroupSelector # Ballons + children: + - id: BalloonNT + weight: 5 # NT bias + - id: BalloonCorgi + - id: BalloonSyn + - !type:GroupSelector # Sports ball + children: + - id: Basketball + - id: Football + - id: BeachBall + - id: TennisBall + amount: 2 + - !type:GroupSelector # PAIs are basically toys + children: + - id: PersonalAI + weight: 8 + - id: PotatoAI + - id: GoldenPersonalAI + weight: 0.1 # 1 in 1,456. A truly rare item + - !type:GroupSelector # Orbs of "power" + weight: 0.05 # 1 in 320 + children: + - id: SingularityToy + - id: TeslaToy + - id: PonderingOrb + +# Entities that don't do much more than make a unique sound. Plushies excluded. +- type: entityTable # size 1x2 # price 100 + id: AllToySoundMakerTable + table: !type:GroupSelector + children: + - id: ToyRubberDuck + - id: RubberChicken + - id: ClownRecorder + - id: WhoopieCushion + - id: NewtonCradle + - id: Skub + - id: DeskBell + - id: BikeHornImplanter + - id: SadTromboneImplanter + - !type:GroupSelector + children: + - id: Whistle + weight: 5 + - id: SecurityWhistle + - id: SyndicateWhistle + weight: 0.5 # 1 in 143 + - !type:NestedSelector # The original + tableId: RandomBikeHornTable + +- type: entityTable # size 1x2 # price 100 + id: RandomBikeHornTable + table: !type:GroupSelector + children: + - id: BikeHorn + - !type:GroupSelector # Usually get the normal horn + weight: .005 # 1 in 200 + children: + - id: CluwneHorn # you lose, clown >:o) + - id: BananiumHorn + - id: PushHorn + - id: GoldenBikeHorn + +- type: entityTable # size 1x1 + id: AllCrayonsTable + table: !type:GroupSelector + children: + - id: CrayonMime + - id: CrayonRainbow + - id: CrayonWhite + - id: CrayonBlack + - id: CrayonRed + - id: CrayonOrange + - id: CrayonYellow + - id: CrayonGreen + - id: CrayonBlue + - id: CrayonPurple + +## Spawners ## + +- type: entity + parent: MarkerBase + id: ToySpawner90 + name: Toy Spawner + suffix: 90 + components: + - type: Sprite + layers: + - state: red + - sprite: Objects/Fun/bikehorn.rsi + state: icon + - type: EntityTableSpawner + table: !type:NestedSelector + tableId: AllToysTable + prob: 0.9 + - type: entity parent: MarkerBase id: PlushieSpawner50 @@ -102,6 +418,22 @@ tableId: AllPlushiesTable prob: 0.5 +- type: entity + parent: MarkerBase + id: SpacemenFigurineSpawner90 + name: Spacemen Minifigure Spawner + suffix: 90 + components: + - type: Sprite + layers: + - state: red + - sprite: Objects/Fun/figurines.rsi + state: figurine_spawner + - type: EntityTableSpawner + table: !type:NestedSelector + tableId: AllFigurinesTable + prob: 0.9 + - type: entity parent: MarkerBase id: MechFigurineSpawner50 @@ -120,15 +452,84 @@ - type: entity parent: MarkerBase - id: SpacemenFigurineSpawner90 - name: Spacemen Minifigure Spawner - suffix: 90. Librarian only, map with care! + id: ToyWeaponSpawner90 + name: Toy Weapon Spawner + suffix: 90 components: - type: Sprite layers: - - sprite: Objects/Fun/figurines.rsi - state: figurine_spawner + - state: red + - sprite: Objects/Fun/rubber_hammer.rsi + state: icon - type: EntityTableSpawner table: !type:NestedSelector - tableId: AllFigurinesTable + tableId: AllToyWeaponsTable + prob: 0.9 + +- type: entity + parent: MarkerBase + id: CapGunSpawner90 + name: Cap Gun Spawner + suffix: 90 + components: + - type: Sprite + layers: + - state: red + - sprite: Objects/Fun/capgun.rsi + state: base + - type: EntityTableSpawner + table: !type:NestedSelector + tableId: RandomCapGunTable + prob: 0.9 + +- type: entity + parent: MarkerBase + id: MiscToySpawner90 + name: Miscellaneous Toy Spawner + suffix: 90 + components: + - type: Sprite + layers: + - state: red + - sprite: Objects/Fun/Balloons/nanotrasen.rsi + state: icon + - type: EntityTableSpawner + table: !type:NestedSelector + tableId: AllMiscToysTable + prob: 0.9 + +- type: entity + parent: MarkerBase + id: ToySoundMakerSpawner90 + name: Toy Sound Maker Spawner + suffix: 90 + components: + - type: Sprite + layers: + - state: red + - sprite: Objects/Fun/rubber_chicken.rsi + state: icon + - type: EntityTableSpawner + table: !type:NestedSelector + tableId: AllToySoundMakerTable + prob: 0.9 + +- type: entity + parent: MarkerBase + id: CrayonSpawner90 + name: Crayon Spawner + suffix: 90 + components: + - type: Sprite + layers: + - state: red + - sprite: Objects/Fun/crayons.rsi + state: rainbow + - type: EntityTableSpawner + table: !type:GroupSelector prob: 0.9 + children: + - !type:NestedSelector + tableId: AllCrayonsTable + - id: CrayonBox + weight: 0.05 # 1 in 20 diff --git a/Resources/Prototypes/Entities/Markers/Spawners/Random/toy_tabletop.yml b/Resources/Prototypes/Entities/Markers/Spawners/Random/toy_tabletop.yml new file mode 100644 index 0000000000..d0f4723af3 --- /dev/null +++ b/Resources/Prototypes/Entities/Markers/Spawners/Random/toy_tabletop.yml @@ -0,0 +1,52 @@ +- type: entityTable # size 1x2 + id: AllBoardGamesTable + table: !type:GroupSelector + children: + - id: BackgammonBoard + - id: ChessBoard + - id: ParchisBoard + - id: CheckerBoard + +- type: entityTable # size 1x2 + id: AllBattlemapsTable + table: !type:GroupSelector + children: + - id: GrassBattlemap + - id: MoonBattlemap + - id: SandBattlemap + - id: SnowBattlemap + - id: ShipBattlemap + +## Spawners ## + +- type: entity + parent: MarkerBase + id: BoardGameSpawner100 + name: Board Game Spawner + suffix: 100 + components: + - type: Sprite + layers: + - state: red + - sprite: Objects/Fun/Tabletop/chessboard.rsi + state: chessboard + - type: EntityTableSpawner + offset: 0 + table: !type:NestedSelector + tableId: AllBoardGamesTable + +- type: entity + parent: MarkerBase + id: BattleMapSpawner100 + name: Battle Map Spawner + suffix: 100 + components: + - type: Sprite + layers: + - state: red + - sprite: Objects/Fun/Tabletop/Battlemaps/grassbm.rsi + state: icon + - type: EntityTableSpawner + offset: 0 + table: !type:NestedSelector + tableId: AllBattlemapsTable diff --git a/Resources/Prototypes/Entities/Objects/Fun/bike_horn.yml b/Resources/Prototypes/Entities/Objects/Fun/bike_horn.yml index e5f68aac8f..e7efa14dc4 100644 --- a/Resources/Prototypes/Entities/Objects/Fun/bike_horn.yml +++ b/Resources/Prototypes/Entities/Objects/Fun/bike_horn.yml @@ -135,7 +135,7 @@ slots: [Belt] - type: Prayable - type: StaticPrice - price: 1000 + price: 100 # reduced price due to heisentests - type: PointLight radius: 1.2 energy: 2.2 diff --git a/Resources/Prototypes/Entities/Objects/Fun/pai.yml b/Resources/Prototypes/Entities/Objects/Fun/pai.yml index ad23694a47..9967eb3a30 100644 --- a/Resources/Prototypes/Entities/Objects/Fun/pai.yml +++ b/Resources/Prototypes/Entities/Objects/Fun/pai.yml @@ -156,8 +156,6 @@ shader: unshaded map: ["screen"] - type: Appearance - - type: StaticPrice - price: 5000 - type: entity parent: PersonalAI diff --git a/Resources/Prototypes/Entities/Objects/Fun/toys.yml b/Resources/Prototypes/Entities/Objects/Fun/toys.yml index 9dc62e0a1e..52d13d6214 100644 --- a/Resources/Prototypes/Entities/Objects/Fun/toys.yml +++ b/Resources/Prototypes/Entities/Objects/Fun/toys.yml @@ -344,7 +344,7 @@ - type: Item sprite: Objects/Fun/Balloons/syndicate.rsi - type: StaticPrice - price: 5000 # Entertainment. + price: 100 # Entertainment. - type: entity parent: BaseBalloon diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Rifles/rifles.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Rifles/rifles.yml index 425bc4da58..52dbb24149 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Rifles/rifles.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Rifles/rifles.yml @@ -195,7 +195,7 @@ name: XL8 description: |- The Experimental Lecter 8 - An unreasonably expensive military grade assault rifle with integrated optic. + An unreasonably expensive military grade assault rifle with integrated optic. Uses .20 rifle ammo. components: - type: Sprite @@ -215,7 +215,7 @@ - Burst - SemiAuto - FullAuto - + - type: entity name: Estoc DMR parent: [BaseWeaponRifle, BaseSyndicateContraband] @@ -315,3 +315,5 @@ path: /Audio/Weapons/Guns/Empty/empty.ogg clumsyProof: true - type: PacifismAllowedGun + - type: StaticPrice + price: 100 diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/pneumatic_cannon.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/pneumatic_cannon.yml index 26520c2fd5..2a197e2685 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/pneumatic_cannon.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/pneumatic_cannon.yml @@ -63,9 +63,10 @@ gas_tank: !type:ContainerSlot - type: entity - name: pie cannon parent: BaseStorageItem id: LauncherCreamPie + name: pie cannon + suffix: Empty description: Load cream pie for optimal results. components: - type: Sprite diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Throwable/grenades.yml b/Resources/Prototypes/Entities/Objects/Weapons/Throwable/grenades.yml index 6fb94e1f0a..7cce1d49ca 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Throwable/grenades.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Throwable/grenades.yml @@ -449,4 +449,4 @@ params: volume: 12 - type: StaticPrice - price: 1000 + price: 50