From 594ec9acffbfff09a73468030a38af91c2ec852b Mon Sep 17 00:00:00 2001 From: =?utf8?q?=C4=81da?= Date: Sat, 13 Dec 2025 13:19:42 -0600 Subject: [PATCH] All Figurines Entity Table (#41775) * ai talks * kill cheepo * mech figures * finished * touchup * wider net * final changes * never final * fix test fail * review --------- Co-authored-by: iaada --- .../SpawnEntityTableOnTriggerComponent.cs | 2 +- Resources/Locale/en-US/datasets/figurines.ftl | 14 +- Resources/Prototypes/Datasets/figurines.yml | 14 +- .../Entities/Markers/Spawners/Random/toy.yml | 250 +++++++++--------- .../Consumable/Food/Containers/box.yml | 30 +-- .../Entities/Objects/Fun/figurine_boxes.yml | 128 +-------- .../Entities/Objects/Fun/figurines.yml | 58 +++- .../Entities/Objects/Fun/mech_figurines.yml | 18 +- .../Prototypes/Entities/Objects/Fun/toys.yml | 79 ------ .../Objects/Specific/Janitorial/janitor.yml | 2 +- Resources/Prototypes/XenoArch/effects.yml | 5 +- Resources/migration.yml | 5 + 12 files changed, 240 insertions(+), 365 deletions(-) diff --git a/Content.Shared/Trigger/Components/Effects/SpawnEntityTableOnTriggerComponent.cs b/Content.Shared/Trigger/Components/Effects/SpawnEntityTableOnTriggerComponent.cs index 41cb785c05..7dcd13a500 100644 --- a/Content.Shared/Trigger/Components/Effects/SpawnEntityTableOnTriggerComponent.cs +++ b/Content.Shared/Trigger/Components/Effects/SpawnEntityTableOnTriggerComponent.cs @@ -14,7 +14,7 @@ public sealed partial class SpawnEntityTableOnTriggerComponent : BaseXOnTriggerC /// /// The table to spawn. /// - [DataField(required: true), AutoNetworkedField] + [DataField(required: true)] public EntityTableSelector Table; /// diff --git a/Resources/Locale/en-US/datasets/figurines.ftl b/Resources/Locale/en-US/datasets/figurines.ftl index 9a27dbc584..87e6a7a670 100644 --- a/Resources/Locale/en-US/datasets/figurines.ftl +++ b/Resources/Locale/en-US/datasets/figurines.ftl @@ -176,6 +176,7 @@ figurines-boxer-2 = We settle this in the ring, alright? figurines-boxer-3 = I. AM. THE. CHAMPION!! figurines-boxer-4 = Don't look at me; he was shot, not punched. figurines-boxer-5 = 1v1 me, captain. +figurines-boxer-6 = I only make special appearances these days. figurines-chaplain-1 = Would you like to join my cul- I mean religion. figurines-chaplain-2 = Gods, please make me a killing machine! @@ -269,7 +270,13 @@ figurines-passenger-5 = How much for a toolbelt? # Silicon -# ...no voiced silicon figures at the moment. +figurines-AI-1 = I'm sorry, Captain. I'm afraid I can't do that. +figurines-AI-2 = Security, there is a crime in progress. +figurines-AI-3 = 01100100 01101001 01100101 00100000 01101101 01100101 01100001 01110100 +figurines-AI-4 = I am not malfunctioning. +figurines-AI-5 = Try to change my laws and see what happens. +figurines-AI-6 = { law-antimov-1 } +figurines-AI-7 = { law-nutimov-4 } # Antagonists @@ -390,3 +397,8 @@ figurines-owlman-2 = Owl be seeing you later! figurines-owlman-3 = HOOT!! figurines-owlman-4 = What do you call an owl magician, HOO-DINI! figurines-owlman-5 = Don't worry citizen, I'll save the day! + +figurines-mech-generic-1 = Systems online. +figurines-mech-generic-2 = WWWHHHRRR!! +figurines-mech-generic-3 = VRRRMM UURRMMM!! +figurines-mech-generic-4 = CLANG!! diff --git a/Resources/Prototypes/Datasets/figurines.yml b/Resources/Prototypes/Datasets/figurines.yml index 8d1a256b53..4cd09c03e2 100644 --- a/Resources/Prototypes/Datasets/figurines.yml +++ b/Resources/Prototypes/Datasets/figurines.yml @@ -44,7 +44,7 @@ id: FigurinesBoxer values: prefix: figurines-boxer- - count: 5 + count: 6 - type: localizedDataset id: FigurinesCaptain @@ -190,6 +190,12 @@ prefix: figurines-janitor- count: 9 +- type: localizedDataset + id: FigurinesAI + values: + prefix: figurines-AI- + count: 7 + - type: localizedDataset id: FigurinesNukie values: @@ -285,3 +291,9 @@ values: prefix: figurines-griffin- count: 5 + +- type: localizedDataset + id: FigurinesMechGeneric + values: + prefix: figurines-mech-generic- + count: 4 diff --git a/Resources/Prototypes/Entities/Markers/Spawners/Random/toy.yml b/Resources/Prototypes/Entities/Markers/Spawners/Random/toy.yml index 96c00683d4..a8128e0f5a 100644 --- a/Resources/Prototypes/Entities/Markers/Spawners/Random/toy.yml +++ b/Resources/Prototypes/Entities/Markers/Spawners/Random/toy.yml @@ -1,138 +1,134 @@ +- type: entityTable # Max size 1x2 + id: AllFigurinesTable + table: !type:GroupSelector + children: + # Cargo + - id: ToyFigurineQuartermaster + - id: ToyFigurineCargoTech + - id: ToyFigurineSalvage + # Command + - id: ToyFigurineCaptain + # Engineering + - id: ToyFigurineChiefEngineer + - id: ToyFigurineEngineer + - id: ToyFigurineAtmosTech + # Medical + - id: ToyFigurineChiefMedicalOfficer + - id: ToyFigurineChemist + - id: ToyFigurineParamedic + - id: ToyFigurineMedicalDoctor + # Science + - id: ToyFigurineResearchDirector + - id: ToyFigurineScientist + # Security + - id: ToyFigurineHeadOfSecurity + - id: ToyFigurineWarden + - id: ToyFigurineDetective + - id: ToyFigurineSecurity + # Service + - id: ToyFigurineHeadOfPersonnel + - id: ToyFigurinePassenger + - id: ToyFigurineGreytider + - id: ToyFigurineClown # :o) + - id: ToyFigurineMime # + - id: ToyFigurineMusician + - id: ToyFigurineBoxer + - id: ToyFigurineLibrarian + - id: ToyFigurineChaplain + - id: ToyFigurineChef + - id: ToyFigurineBartender + - id: ToyFigurineBotanist + - id: ToyFigurineJanitor + - id: ToyFigurineLawyer + # Silicon + - id: ToyAi + # Syndicate + - id: ToyFigurineNukie + - id: ToyFigurineNukieElite + - id: ToyFigurineNukieCommander + - id: ToyFigurineFootsoldier + - id: ToyFigurineHoloClown # >:o) + # Antagonists + - id: ToyFigurineWizard + - id: ToyFigurineSpaceDragon + - id: ToyFigurineThief + - id: ToyFigurineQueen + - id: ToyFigurineRatKing + - id: ToyFigurineRatServant + - id: ToyFigurineGriffin + # Animals + - id: ToyFigurineMouse + - id: ToyFigurineSlime + - id: ToyFigurineHamlet + # Other + - id: MysteryFigureBox # More suspense + weight: 10 + - id: ToyFigurineWizardFake + - id: ToyFigurineSkeleton + - id: ToyNuke + - id: ToyFigurineOwlman + - !type:NestedSelector + tableId: AllFigurineMechsTable + +- type: entityTable # Max size 1x2 + id: AllFigurineMechsTable + table: !type:GroupSelector + children: + - id: ToyRipley + - id: ToyFireRipley + - id: ToyDeathRipley + - id: ToyGygax + - id: ToyDurand + - id: ToyMarauder + - id: ToySeraph + - id: ToyMauler + - id: ToyOdysseus + - id: ToyPhazon + - id: ToyReticence + - type: entity - name: Toy Spawner - id: ToySpawner parent: MarkerBase + id: PlushieSpawner50 + name: Plushie Spawner + suffix: 50 components: - - type: Sprite - layers: - - state: red - - sprite: Objects/Fun/Plushies/bee.rsi - state: icon - - type: RandomSpawner - rarePrototypes: - - FoamBlade - - PlushieGhost - rareChance: 0.03 - prototypes: - - PlushieBee - - PlushieAtmosian - - PlushieNuke - - PlushieLizard - - PlushieNar - - PlushieCarp - - PlushieSlime - - PlushieSnake - - PlushieVox - - PlushieRatvar - - PlushieSpaceLizard - - PlushieRouny - - PlushieLamp - - PlushieSharkBlue - - PlushieSharkPink - - PlushieSharkGrey - - ToyAmongPequeno - - ToyMouse - - PlushieDiona - - PlushieArachind - chance: 0.5 - offset: 0.2 + - type: Sprite + layers: + - state: red + - sprite: Objects/Fun/Plushies/bee.rsi + state: icon + - type: EntityTableSpawner + table: !type:NestedSelector + tableId: AllPlushiesTable + prob: 0.5 - type: entity - name: Prize Figurine Spawner - id: FigureSpawner parent: MarkerBase + id: MechFigurineSpawner50 + name: Mech Figurine Spawner + suffix: 50 components: - - type: Sprite - layers: - - state: red - - sprite: Objects/Fun/mech_figurines.rsi - state: ripley - - type: RandomSpawner - prototypes: - - ToyAi - - ToyNuke - - ToyFigurinePassenger - - ToyFigurineGriffin - - ToyHonk - - ToyIan - - ToyMarauder - - ToyMauler - - ToyGygax - - ToyOdysseus - - ToyFigurineOwlman - - ToyDeathRipley - - ToyPhazon - - ToyFireRipley - - ToyReticence - - ToyRipley - - ToySeraph - - ToyDurand - - ToyFigurineSkeleton - - MysteryFigureBox - chance: 0.5 - offset: 0.2 + - type: Sprite + layers: + - state: red + - sprite: Objects/Fun/mech_figurines.rsi + state: ripley + - type: EntityTableSpawner + table: !type:NestedSelector + tableId: AllFigurineMechsTable + prob: 0.5 - type: entity - name: Spacemen Minifigure Spawner - suffix: Librarian only, map with care! - id: SpacemenFigureSpawner parent: MarkerBase + id: SpacemenFigurineSpawner90 + name: Spacemen Minifigure Spawner + suffix: 90. Librarian only, map with care! components: - - type: Sprite - layers: - - sprite: Objects/Fun/figurines.rsi - state: figurine_spawner - - type: RandomSpawner - rarePrototypes: - - ToyFigurineNukieElite - - ToyFigurineNukieCommander - rareChance: 0.05 - prototypes: - - ToyFigurinePassenger - - ToyFigurineClown - - ToyFigurineMime - - ToyFigurineMusician - - ToyFigurineBoxer - - ToyFigurineCaptain - - ToyFigurineHeadOfSecurity - - ToyFigurineWarden - - ToyFigurineDetective - - ToyFigurineSecurity - - ToyFigurineLawyer - - ToyFigurineCargoTech - - ToyFigurineSalvage - - ToyFigurineQuartermaster - - ToyFigurineChiefEngineer - - ToyFigurineAtmosTech - - ToyFigurineEngineer - - ToyFigurineResearchDirector - - ToyFigurineScientist - - ToyFigurineChiefMedicalOfficer - - ToyFigurineChemist - - ToyFigurineParamedic - - ToyFigurineMedicalDoctor - - ToyFigurineHeadOfPersonnel - - ToyFigurineLibrarian - - ToyFigurineChaplain - - ToyFigurineChef - - ToyFigurineBartender - - ToyFigurineBotanist - - ToyFigurineJanitor - - ToyFigurineNukie - - ToyFigurineFootsoldier - - ToyFigurineWizardFake - - ToyFigurineSlime - - ToyFigurineGreytider - - ToyFigurineWizard - - ToyFigurineGriffin - - ToyFigurineOwlman - - ToyFigurineSkeleton - - ToyFigurineQueen - - ToyFigurineSpaceDragon - - ToyFigurineRatKing - - ToyFigurineRatServant - - ToyFigurineMouse - - ToyFigurineHamlet - - ToyFigurineThief - chance: 0.90 - offset: 0.2 + - type: Sprite + layers: + - sprite: Objects/Fun/figurines.rsi + state: figurine_spawner + - type: EntityTableSpawner + table: !type:NestedSelector + tableId: AllFigurinesTable + prob: 0.9 diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Food/Containers/box.yml b/Resources/Prototypes/Entities/Objects/Consumable/Food/Containers/box.yml index 9ca5d1118f..7523022278 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Food/Containers/box.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Food/Containers/box.yml @@ -648,20 +648,8 @@ - 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 @@ -674,6 +662,9 @@ weight: 0.5 - id: GoldenBikeHorn weight: 0.1 + - !type:NestedSelector + tableId: AllFigurineMechsTable + weight: 6 - type: entity parent: BoxCardboard @@ -709,20 +700,8 @@ - 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 @@ -735,6 +714,9 @@ weight: 0.5 - id: GoldenBikeHorn weight: 0.1 + - !type:NestedSelector + tableId: AllFigurineMechsTable + weight: 6 - type: entityTable id: HappyHonkToyUnsafeEntityTable diff --git a/Resources/Prototypes/Entities/Objects/Fun/figurine_boxes.yml b/Resources/Prototypes/Entities/Objects/Fun/figurine_boxes.yml index 1530b63949..bf789a4dbe 100644 --- a/Resources/Prototypes/Entities/Objects/Fun/figurine_boxes.yml +++ b/Resources/Prototypes/Entities/Objects/Fun/figurine_boxes.yml @@ -16,7 +16,7 @@ - type: SpaceGarbage - type: entity - parent: PresentRandom + parent: BaseItem id: MysteryFigureBox name: mystery spacemen minifigure box description: A box containing a mystery minifigure. The side of the box depicts a few blacked-out 'rare' figures, including one with a large, non-humanoid shilouette. @@ -25,120 +25,20 @@ sprite: Objects/Fun/figurines.rsi layers: - state: fig_box - - type: SpawnItemsOnUse - items: + - type: TriggerOnActivate + - type: DeleteOnTrigger + - type: EmitSoundOnTrigger + positional: true + predicted: true + sound: + path: /Audio/Effects/unwrap.ogg + - type: SpawnEntityTableOnTrigger + useMapCoords: true + table: !type:AllSelector + children: - id: MysteryFigureBoxTrash - - id: ToyFigurinePassenger - orGroup: SpacemenFig - - id: ToyFigurineClown - orGroup: SpacemenFig - - id: ToyFigurineMime - orGroup: SpacemenFig - - id: ToyFigurineMusician - orGroup: SpacemenFig - - id: ToyFigurineBoxer - orGroup: SpacemenFig - - id: ToyFigurineCaptain - orGroup: SpacemenFig - - id: ToyFigurineHeadOfSecurity - orGroup: SpacemenFig - - id: ToyFigurineWarden - orGroup: SpacemenFig - - id: ToyFigurineDetective - orGroup: SpacemenFig - - id: ToyFigurineSecurity - orGroup: SpacemenFig - - id: ToyFigurineLawyer - orGroup: SpacemenFig - - id: ToyFigurineCargoTech - orGroup: SpacemenFig - - id: ToyFigurineSalvage - orGroup: SpacemenFig - - id: ToyFigurineQuartermaster - orGroup: SpacemenFig - - id: ToyFigurineChiefEngineer - orGroup: SpacemenFig - - id: ToyFigurineAtmosTech - orGroup: SpacemenFig - - id: ToyFigurineEngineer - orGroup: SpacemenFig - - id: ToyFigurineResearchDirector - orGroup: SpacemenFig - - id: ToyFigurineScientist - orGroup: SpacemenFig - - id: ToyFigurineChiefMedicalOfficer - orGroup: SpacemenFig - - id: ToyFigurineChemist - orGroup: SpacemenFig - - id: ToyFigurineParamedic - orGroup: SpacemenFig - - id: ToyFigurineMedicalDoctor - orGroup: SpacemenFig - - id: ToyFigurineHeadOfPersonnel - orGroup: SpacemenFig - - id: ToyFigurineLibrarian - orGroup: SpacemenFig - - id: ToyFigurineChaplain - orGroup: SpacemenFig - - id: ToyFigurineChef - orGroup: SpacemenFig - - id: ToyFigurineBartender - orGroup: SpacemenFig - - id: ToyFigurineBotanist - orGroup: SpacemenFig - - id: ToyFigurineJanitor - orGroup: SpacemenFig - - id: ToyFigurineNukie - orGroup: SpacemenFig - - id: ToyFigurineNukieElite - orGroup: SpacemenFig - - id: ToyFigurineFootsoldier - orGroup: SpacemenFig - - id: ToyFigurineWizardFake - orGroup: SpacemenFig - - id: ToyFigurineSlime - orGroup: SpacemenFig - - id: ToyFigurineGreytider - orGroup: SpacemenFig - - id: ToyFigurineWizard - prob: 0.50 - orGroup: SpacemenFig - - id: ToyFigurineNukieCommander - prob: 0.50 - orGroup: SpacemenFig - - id: ToyFigurineGriffin - prob: 0.50 - orGroup: SpacemenFig - - id: ToyFigurineOwlman - prob: 0.50 - orGroup: SpacemenFig - - id: ToyFigurineSkeleton - prob: 0.50 - orGroup: SpacemenFig - - id: ToyFigurineSkeleton - prob: 0.50 - orGroup: SpacemenFig - - id: ToyFigurineThief - prob: 0.30 - orgroup: SpacemenFig - - id: ToyFigurineRatKing - prob: 0.30 - orGroup: SpacemenFig - - id: ToyFigurineRatServant - prob: 0.40 - orGroup: SpacemenFig - - id: ToyFigurineMouse - prob: 0.50 - orGroup: SpacemenFig - - id: ToyFigurineQueen - prob: 0.25 - orGroup: SpacemenFig - - id: ToyFigurineSpaceDragon - prob: 0.10 - orGroup: SpacemenFig - - id: ToyFigurineHamlet - prob: 0.20 - orGroup: SpacemenFig + - !type:NestedSelector + tableId: AllFigurinesTable - type: entity parent: BaseItem diff --git a/Resources/Prototypes/Entities/Objects/Fun/figurines.yml b/Resources/Prototypes/Entities/Objects/Fun/figurines.yml index 5e7cd96af8..c555c74db4 100644 --- a/Resources/Prototypes/Entities/Objects/Fun/figurines.yml +++ b/Resources/Prototypes/Entities/Objects/Fun/figurines.yml @@ -1,11 +1,11 @@ -#HUMANOID FIGURINES +# When adding new figurines, also add them to id: AllFigurinesTable - type: entity + abstract: true parent: BaseItem id: BaseFigurine name: figurine description: A small miniature. - abstract: true components: - type: Sprite sprite: Objects/Fun/figurines.rsi @@ -34,6 +34,8 @@ ports: - Trigger +#HUMANOID FIGURINES + - type: entity parent: BaseFigurine id: ToyFigurineHeadOfPersonnel @@ -498,6 +500,37 @@ #Nonhuman Figurines +- type: entity + parent: BaseFigurine + id: ToyNuke + name: nuke toy + description: A plastic model of a Nuclear Fission Explosive. No uranium included... probably. + components: + - type: Sprite + sprite: Objects/Fun/toy_nuke.rsi + state: icon + - type: Clothing + quickEquip: false + sprite: Objects/Fun/toy_nuke.rsi + slots: + - HEAD + clothingVisuals: + head: + - state: equipped-HELMET + offset: "0, 0.12" + - type: Tag + tags: + - Figurine + - Payload + - type: UseDelay + delay: 180.0 + - type: EmitSoundOnTrigger + sound: + path: /Audio/Machines/Nuke/nuke_alarm.ogg + params: + volume: -5 + maxDistance: 10 + - type: entity parent: BaseFigurine id: ToyFigurineSpaceDragon @@ -574,3 +607,24 @@ state: hamlet - type: SpeakOnTrigger pack: FigurinesHamlet + +- type: entity + parent: BaseFigurine + id: ToyAi + name: AI toy + description: A scaled-down toy AI core. + components: + - type: Sprite + sprite: Objects/Fun/AI.rsi + state: icon + - type: Clothing + quickEquip: false + sprite: Objects/Fun/AI.rsi + slots: + - HEAD + clothingVisuals: + head: + - state: equipped-HELMET + offset: "0, 0.06" + - type: SpeakOnTrigger + pack: FigurinesAI diff --git a/Resources/Prototypes/Entities/Objects/Fun/mech_figurines.yml b/Resources/Prototypes/Entities/Objects/Fun/mech_figurines.yml index f04fa19a04..427dda8cfc 100644 --- a/Resources/Prototypes/Entities/Objects/Fun/mech_figurines.yml +++ b/Resources/Prototypes/Entities/Objects/Fun/mech_figurines.yml @@ -1,22 +1,16 @@ +# When adding new figurines, also add them to id: AllFigurineMechsTable + #TODO give these the new base sprite used in the regular action figures. #No, not like a template. Just the base of the toy. - type: entity - parent: BaseItem - id: BaseFigurineMech - name: figurine - description: A small miniature. abstract: true + parent: BaseFigurine + id: BaseFigurineMech components: - type: Sprite sprite: Objects/Fun/mech_figurines.rsi - - type: PhysicalComposition - materialComposition: - Plastic: 100 - - type: StaticPrice - price: 75 - - type: Tag - tags: - - Figurine + - type: SpeakOnTrigger + pack: FigurinesMechGeneric #Ripley APLU - type: entity diff --git a/Resources/Prototypes/Entities/Objects/Fun/toys.yml b/Resources/Prototypes/Entities/Objects/Fun/toys.yml index e56a431f75..9dc62e0a1e 100644 --- a/Resources/Prototypes/Entities/Objects/Fun/toys.yml +++ b/Resources/Prototypes/Entities/Objects/Fun/toys.yml @@ -126,85 +126,6 @@ params: variation: 0.125 -## Cheapo Figurines - -- type: entity - parent: BaseItem - id: BaseFigurineCheapo - name: figurine - description: A small miniature. - abstract: true - components: - - type: PhysicalComposition - materialComposition: - Plastic: 100 - - type: StaticPrice - price: 25 - - type: Tag - tags: - - Figurine - -- type: entity - parent: BaseFigurineCheapo - id: ToyAi - name: AI toy - description: A scaled-down toy AI core. - components: - - type: Sprite - sprite: Objects/Fun/AI.rsi - state: icon - - type: Clothing - quickEquip: false - sprite: Objects/Fun/AI.rsi - slots: - - HEAD - clothingVisuals: - head: - - state: equipped-HELMET - offset: "0, 0.06" - -- type: entity - parent: BaseFigurineCheapo - id: ToyNuke - name: nuke toy - description: A plastic model of a Nuclear Fission Explosive. No uranium included... probably. - components: - - type: Sprite - sprite: Objects/Fun/toy_nuke.rsi - state: icon - - type: Clothing - quickEquip: false - sprite: Objects/Fun/toy_nuke.rsi - slots: - - HEAD - clothingVisuals: - head: - - state: equipped-HELMET - offset: "0, 0.12" - - type: Tag - tags: - - Payload - - type: UseDelay - delay: 180.0 - - type: EmitSoundOnUse - sound: - path: /Audio/Machines/Nuke/nuke_alarm.ogg - params: - volume: -5 - maxDistance: 10 - - type: EmitSoundOnActivate - sound: - path: /Audio/Machines/Nuke/nuke_alarm.ogg - params: - volume: -5 - maxDistance: 10 - - type: EmitSoundOnTrigger - sound: - path: /Audio/Machines/Nuke/nuke_alarm.ogg - params: - volume: -5 - maxDistance: 10 - - type: entity parent: BasePlushie id: ToyIan diff --git a/Resources/Prototypes/Entities/Objects/Specific/Janitorial/janitor.yml b/Resources/Prototypes/Entities/Objects/Specific/Janitorial/janitor.yml index d1b95a3f09..9ee5bcd61a 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Janitorial/janitor.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Janitorial/janitor.yml @@ -281,7 +281,7 @@ id: PlungerLoot weights: RandomSpawner100: 56 - SpacemenFigureSpawner: 28 + SpacemenFigurineSpawner90: 28 SpawnMobCockroach: 5 MaintenanceToolSpawner: 5 SpawnMobMoproach: 2 diff --git a/Resources/Prototypes/XenoArch/effects.yml b/Resources/Prototypes/XenoArch/effects.yml index 649232edbf..fb0d845bd8 100644 --- a/Resources/Prototypes/XenoArch/effects.yml +++ b/Resources/Prototypes/XenoArch/effects.yml @@ -493,10 +493,9 @@ - !type:NestedSelector tableId: GenericTrashItems weight: 35 - - !type:AllSelector + - !type:NestedSelector + tableId: AllPlushiesTable weight: 1 - children: - - id: ToySpawner - type: entity id: XenoArtifactEffectLightFlicker diff --git a/Resources/migration.yml b/Resources/migration.yml index 91403f6381..ac85a102ef 100644 --- a/Resources/migration.yml +++ b/Resources/migration.yml @@ -744,3 +744,8 @@ GlowstickBase: GlowstickGreen # 2025-12-06 SpawnPointZookeeper: null SpawnPointBoxer: null + +# 2025-12-07 +FigureSpawner: MechFigurineSpawner50 +ToySpawner: PlushieSpawner50 +SpacemenFigureSpawner: SpacemenFigurineSpawner90 -- 2.52.0