From 3b4547571e4d81ba987ae095189636f9540f226c Mon Sep 17 00:00:00 2001 From: Princess Cheeseballs <66055347+Princess-Cheeseballs@users.noreply.github.com> Date: Thu, 25 Sep 2025 21:22:40 -0700 Subject: [PATCH] [BUGFIX/CLEANUP] Edible Plushies and Clothes (#40276) * Hongry... * AAAAAAAAAAAAAAAAA * Extremely silly test fail * Fix another dumb test fail * Fix test fails (Real) * Fix 2 --------- Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com> --- .../Clothing/Hands/base_clothinghands.yml | 2 +- .../Clothing/Head/base_clothinghead.yml | 2 +- .../Clothing/Masks/base_clothingmask.yml | 2 +- .../Entities/Clothing/Multiple/towel.yml | 11 +- .../Clothing/Neck/base_clothingneck.yml | 2 +- .../Entities/Clothing/OuterClothing/coats.yml | 2 +- .../Clothing/OuterClothing/wintercoats.yml | 2 +- .../Clothing/Shoes/base_clothingshoes.yml | 2 +- .../Entities/Clothing/Shoes/misc.yml | 6 + .../Uniforms/base_clothinguniforms.yml | 4 +- .../Entities/Objects/Fun/plushies.yml | 229 +++++++----------- .../Objects/Specific/rehydrateable.yml | 2 + 12 files changed, 104 insertions(+), 162 deletions(-) diff --git a/Resources/Prototypes/Entities/Clothing/Hands/base_clothinghands.yml b/Resources/Prototypes/Entities/Clothing/Hands/base_clothinghands.yml index cd68149edc..d90e02b16e 100644 --- a/Resources/Prototypes/Entities/Clothing/Hands/base_clothinghands.yml +++ b/Resources/Prototypes/Entities/Clothing/Hands/base_clothinghands.yml @@ -7,7 +7,7 @@ state: icon - type: Clothing slots: [gloves] - - type: Food + - type: Edible requiresSpecialDigestion: true - type: Item size: Small diff --git a/Resources/Prototypes/Entities/Clothing/Head/base_clothinghead.yml b/Resources/Prototypes/Entities/Clothing/Head/base_clothinghead.yml index 5d512cb3c7..53772f6215 100644 --- a/Resources/Prototypes/Entities/Clothing/Head/base_clothinghead.yml +++ b/Resources/Prototypes/Entities/Clothing/Head/base_clothinghead.yml @@ -11,7 +11,7 @@ - type: Item size: Small storedRotation: -90 - - type: Food + - type: Edible requiresSpecialDigestion: true - type: SolutionContainerManager solutions: diff --git a/Resources/Prototypes/Entities/Clothing/Masks/base_clothingmask.yml b/Resources/Prototypes/Entities/Clothing/Masks/base_clothingmask.yml index a112e4f0de..6ab6da4c0f 100644 --- a/Resources/Prototypes/Entities/Clothing/Masks/base_clothingmask.yml +++ b/Resources/Prototypes/Entities/Clothing/Masks/base_clothingmask.yml @@ -44,7 +44,7 @@ - type: PhysicalComposition # 50% of the amount of cloth you'd obtain upon butchering materialComposition: Cloth: 50 - - type: Food + - type: Edible requiresSpecialDigestion: true - type: SolutionContainerManager solutions: diff --git a/Resources/Prototypes/Entities/Clothing/Multiple/towel.yml b/Resources/Prototypes/Entities/Clothing/Multiple/towel.yml index 0ee8df4524..f5f2053fea 100644 --- a/Resources/Prototypes/Entities/Clothing/Multiple/towel.yml +++ b/Resources/Prototypes/Entities/Clothing/Multiple/towel.yml @@ -9,18 +9,16 @@ sprite: Clothing/Multiple/towel.rsi - type: Clothing sprite: Clothing/Multiple/towel.rsi - slots: + slots: - BELT - INNERCLOTHING - HEAD femaleMask: UniformTop - equipSound: - unequipSound: + equipSound: + unequipSound: - type: Spillable solution: absorbed spillWhenThrown: false - - type: DrainableSolution - solution: absorbed - type: Absorbent pickupAmount: 15 - type: SolutionContainerManager @@ -163,7 +161,7 @@ color: "#0089EF" - type: Fiber fiberColor: fibers-blue - + - type: entity id: TowelColorDarkBlue name: dark blue towel @@ -766,4 +764,3 @@ color: "#535353" - type: Fiber fiberColor: fibers-black - \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Clothing/Neck/base_clothingneck.yml b/Resources/Prototypes/Entities/Clothing/Neck/base_clothingneck.yml index 949575eaf5..2e1b0dea73 100644 --- a/Resources/Prototypes/Entities/Clothing/Neck/base_clothingneck.yml +++ b/Resources/Prototypes/Entities/Clothing/Neck/base_clothingneck.yml @@ -19,7 +19,7 @@ - type: PhysicalComposition # 50% of the amount of cloth you'd obtain upon butchering materialComposition: Cloth: 100 - - type: Food + - type: Edible requiresSpecialDigestion: true - type: SolutionContainerManager solutions: diff --git a/Resources/Prototypes/Entities/Clothing/OuterClothing/coats.yml b/Resources/Prototypes/Entities/Clothing/OuterClothing/coats.yml index e73eca00bf..5c0f1ed277 100644 --- a/Resources/Prototypes/Entities/Clothing/OuterClothing/coats.yml +++ b/Resources/Prototypes/Entities/Clothing/OuterClothing/coats.yml @@ -131,7 +131,7 @@ modifiers: coefficients: Slash: 0.95 - - type: Food + - type: Edible requiresSpecialDigestion: true - type: SolutionContainerManager solutions: diff --git a/Resources/Prototypes/Entities/Clothing/OuterClothing/wintercoats.yml b/Resources/Prototypes/Entities/Clothing/OuterClothing/wintercoats.yml index 4227e52518..86df3c6ec1 100644 --- a/Resources/Prototypes/Entities/Clothing/OuterClothing/wintercoats.yml +++ b/Resources/Prototypes/Entities/Clothing/OuterClothing/wintercoats.yml @@ -21,7 +21,7 @@ priceMultiplier: 0 - type: ZombificationResistance zombificationResistanceCoefficient: 0.55 - - type: Food + - type: Edible requiresSpecialDigestion: true - type: SolutionContainerManager solutions: diff --git a/Resources/Prototypes/Entities/Clothing/Shoes/base_clothingshoes.yml b/Resources/Prototypes/Entities/Clothing/Shoes/base_clothingshoes.yml index 646adda105..a1c837e208 100644 --- a/Resources/Prototypes/Entities/Clothing/Shoes/base_clothingshoes.yml +++ b/Resources/Prototypes/Entities/Clothing/Shoes/base_clothingshoes.yml @@ -10,7 +10,7 @@ state: icon - type: Item size: Normal - - type: Food + - type: Edible requiresSpecialDigestion: true - type: SolutionContainerManager solutions: diff --git a/Resources/Prototypes/Entities/Clothing/Shoes/misc.yml b/Resources/Prototypes/Entities/Clothing/Shoes/misc.yml index 4b93091ec5..db8e3bb603 100644 --- a/Resources/Prototypes/Entities/Clothing/Shoes/misc.yml +++ b/Resources/Prototypes/Entities/Clothing/Shoes/misc.yml @@ -68,6 +68,12 @@ - type: Construction graph: ClothingShoeSlippersLizard node: shoes + - type: Edible + useSound: + path: /Audio/Items/Toys/weh.ogg # Copied from lizard plush sound + params: + volume: -5 + transferAmount: 10 - type: Extractable juiceSolution: reagents: diff --git a/Resources/Prototypes/Entities/Clothing/Uniforms/base_clothinguniforms.yml b/Resources/Prototypes/Entities/Clothing/Uniforms/base_clothinguniforms.yml index cd8ef614e5..0abbfebc2a 100644 --- a/Resources/Prototypes/Entities/Clothing/Uniforms/base_clothinguniforms.yml +++ b/Resources/Prototypes/Entities/Clothing/Uniforms/base_clothinguniforms.yml @@ -17,7 +17,7 @@ - type: PhysicalComposition # 50% of the amount of cloth you'd obtain upon butchering materialComposition: Cloth: 150 - - type: Food + - type: Edible requiresSpecialDigestion: true - type: SolutionContainerManager solutions: @@ -74,4 +74,4 @@ unfoldVerbText: unfold-verb-clothing-jacket foldVerbText: fold-verb-clothing-jacket - type: FoldableClothing - foldedEquippedPrefix: folded \ No newline at end of file + foldedEquippedPrefix: folded diff --git a/Resources/Prototypes/Entities/Objects/Fun/plushies.yml b/Resources/Prototypes/Entities/Objects/Fun/plushies.yml index fa028c038a..b4ab369fab 100644 --- a/Resources/Prototypes/Entities/Objects/Fun/plushies.yml +++ b/Resources/Prototypes/Entities/Objects/Fun/plushies.yml @@ -33,7 +33,7 @@ Cloth: 100 - type: StaticPrice price: 5 - - type: Food + - type: Edible requiresSpecialDigestion: true useSound: *BasePlushieSound delay: 2 @@ -110,6 +110,7 @@ - ForceableFollow - PlushieGhost - Payload + - ClothMade - type: entity parent: PlushieGhost @@ -178,28 +179,21 @@ sprite: Objects/Fun/Plushies/hampter.rsi state: icon - type: EmitSoundOnUse - sound: + sound: &PlushieHampterSound path: /Audio/Items/Toys/mousesqueek.ogg - type: EmitSoundOnLand - sound: - path: /Audio/Items/Toys/mousesqueek.ogg + sound: *PlushieHampterSound - type: EmitSoundOnActivate - sound: - path: /Audio/Items/Toys/mousesqueek.ogg + sound: *PlushieHampterSound - type: EmitSoundOnTrigger - sound: - path: /Audio/Items/Toys/mousesqueek.ogg + sound: *PlushieHampterSound - type: EmitSoundOnCollide - sound: - path: /Audio/Items/Toys/mousesqueek.ogg - - type: Food - requiresSpecialDigestion: true - useSound: - path: /Audio/Items/Toys/mousesqueek.ogg + sound: *PlushieHampterSound + - type: Edible + useSound: *PlushieHampterSound - type: MeleeWeapon wideAnimationRotation: 180 - soundHit: - path: /Audio/Items/Toys/mousesqueek.ogg + soundHit: *PlushieHampterSound - type: Clothing quickEquip: false sprite: Objects/Fun/Plushies/hampter.rsi @@ -310,28 +304,20 @@ sprite: Objects/Fun/Plushies/arachnid.rsi state: icon - type: EmitSoundOnUse - sound: + sound: &PlushieArachnidSound path: /Audio/Voice/Arachnid/arachnid_laugh.ogg - type: EmitSoundOnLand - sound: - path: /Audio/Voice/Arachnid/arachnid_laugh.ogg + sound: *PlushieArachnidSound - type: EmitSoundOnActivate - sound: - path: /Audio/Voice/Arachnid/arachnid_laugh.ogg + sound: *PlushieArachnidSound - type: EmitSoundOnTrigger - sound: - path: /Audio/Voice/Arachnid/arachnid_laugh.ogg + sound: *PlushieArachnidSound - type: EmitSoundOnCollide - sound: - path: /Audio/Voice/Arachnid/arachnid_laugh.ogg - - type: Food - requiresSpecialDigestion: true - useSound: - path: /Audio/Voice/Arachnid/arachnid_laugh.ogg + sound: *PlushieArachnidSound + - type: Edible + useSound: *PlushieArachnidSound - type: MeleeWeapon - wideAnimationRotation: 180 - soundHit: - path: /Audio/Voice/Arachnid/arachnid_laugh.ogg + soundHit: *PlushieArachnidSound - type: Clothing quickEquip: false sprite: Objects/Fun/Plushies/arachnid.rsi @@ -365,9 +351,9 @@ sound: *PlushieLizardSound - type: EmitSoundOnCollide sound: *PlushieLizardSound - - type: Food - requiresSpecialDigestion: true + - type: Edible useSound: *PlushieLizardSound + transferAmount: 10 - type: MeleeWeapon wideAnimationRotation: 180 soundHit: *PlushieLizardSound @@ -432,8 +418,7 @@ sound: *PlushieExperimentSound - type: EmitSoundOnCollide sound: *PlushieExperimentSound - - type: Food - requiresSpecialDigestion: true + - type: Edible useSound: *PlushieExperimentSound - type: MeleeWeapon wideAnimationRotation: 180 @@ -516,8 +501,7 @@ sound: *PlushieSpaceLizardSound - type: EmitSoundOnCollide sound: *PlushieSpaceLizardSound - - type: Food - requiresSpecialDigestion: true + - type: Edible useSound: *PlushieSpaceLizardSound - type: MeleeWeapon wideAnimationRotation: 180 @@ -556,8 +540,7 @@ sound: *PlushieLizardInversedSound - type: EmitSoundOnTrigger sound: *PlushieLizardInversedSound - - type: Food - requiresSpecialDigestion: true + - type: Edible useSound: *PlushieLizardInversedSound - type: MeleeWeapon wideAnimationRotation: 180 @@ -616,22 +599,19 @@ - type: MeleeWeapon wideAnimationRotation: 180 soundHit: *PlushieDionaSound - - type: Food - requiresSpecialDigestion: true + - type: Edible useSound: *PlushieDionaSound - type: SolutionContainerManager solutions: - plushie: - maxVol: 1 food: - maxVol: 10 + maxVol: 11 reagents: - ReagentId: Fiber Quantity: 10 - type: RefillableSolution - solution: plushie + solution: food - type: SolutionContainerVisuals - solutionName: plushie + solutionName: food maxFillLevels: 1 fillBaseName: plushie_diona changeColor: false @@ -683,26 +663,23 @@ - type: Sprite sprite: Objects/Fun/Plushies/shark.rsi state: blue - - type: EmitSoundOnLand - sound: - path: /Audio/Items/Toys/rawr.ogg - - type: EmitSoundOnTrigger - sound: - path: /Audio/Items/Toys/rawr.ogg - type: EmitSoundOnUse - sound: + sound: &PlushieSharkSound path: /Audio/Items/Toys/rawr.ogg + - type: EmitSoundOnLand + sound: *PlushieSharkSound + - type: EmitSoundOnTrigger + sound: *PlushieSharkSound - type: EmitSoundOnActivate - sound: - path: /Audio/Items/Toys/rawr.ogg + sound: *PlushieSharkSound - type: EmitSoundOnCollide - sound: - path: /Audio/Items/Toys/rawr.ogg + sound: *PlushieSharkSound - type: MeleeWeapon wideAnimationRotation: 90 - soundHit: - path: /Audio/Items/Toys/rawr.ogg + soundHit: *PlushieSharkSound animation: WeaponArcBite + - type: Edible + useSound: *PlushieSharkSound - type: Item heldPrefix: blue storedRotation: -90 @@ -813,28 +790,21 @@ heldPrefix: carpplush storedRotation: -90 - type: EmitSoundOnUse - sound: + sound: &PlushieCarpSound path: /Audio/Effects/bite.ogg - type: EmitSoundOnLand - sound: - path: /Audio/Effects/bite.ogg + sound: *PlushieCarpSound - type: EmitSoundOnActivate - sound: - path: /Audio/Effects/bite.ogg + sound: *PlushieCarpSound - type: EmitSoundOnTrigger - sound: - path: /Audio/Effects/bite.ogg + sound: *PlushieCarpSound - type: EmitSoundOnCollide - sound: - path: /Audio/Effects/bite.ogg - - type: Food - requiresSpecialDigestion: true - useSound: - path: /Audio/Effects/bite.ogg + sound: *PlushieCarpSound + - type: Edible + useSound: *PlushieCarpSound - type: MeleeWeapon wideAnimationRotation: 90 - soundHit: - path: /Audio/Effects/bite.ogg + soundHit: *PlushieCarpSound angle: 0 animation: WeaponArcBite # Rrrr! - type: FoodSequenceElement @@ -924,21 +894,18 @@ sprite: Objects/Fun/Plushies/slime.rsi state: icon - type: EmitSoundOnUse - sound: + sound: &PlushieSlimeSound path: /Audio/Voice/Slime/slime_squish.ogg - type: EmitSoundOnLand - sound: - path: /Audio/Voice/Slime/slime_squish.ogg + sound: *PlushieSlimeSound - type: EmitSoundOnActivate - sound: - path: /Audio/Voice/Slime/slime_squish.ogg + sound: *PlushieSlimeSound - type: EmitSoundOnTrigger - sound: - path: /Audio/Voice/Slime/slime_squish.ogg + sound: *PlushieSlimeSound - type: MeleeWeapon - wideAnimationRotation: 180 - soundHit: - path: /Audio/Voice/Slime/slime_squish.ogg + soundHit: *PlushieSlimeSound + - type: Edible + useSound: *PlushieSlimeSound - type: Clothing quickEquip: false sprite: Objects/Fun/Plushies/slime.rsi @@ -960,28 +927,21 @@ - type: Item heldPrefix: plushiesnake - type: EmitSoundOnUse - sound: + sound: &PlushieSnakeSound path: /Audio/Items/Toys/rattle.ogg - type: EmitSoundOnLand - sound: - path: /Audio/Items/Toys/rattle.ogg + sound: *PlushieSnakeSound - type: EmitSoundOnActivate - sound: - path: /Audio/Items/Toys/rattle.ogg + sound: *PlushieSnakeSound - type: EmitSoundOnTrigger - sound: - path: /Audio/Items/Toys/rattle.ogg + sound: *PlushieSnakeSound - type: EmitSoundOnCollide - sound: - path: /Audio/Items/Toys/rattle.ogg - - type: Food - requiresSpecialDigestion: true - useSound: - path: /Audio/Items/Toys/rattle.ogg + sound: *PlushieSnakeSound + - type: Edible + useSound: *PlushieSnakeSound - type: MeleeWeapon wideAnimationRotation: 90 - soundHit: - path: /Audio/Items/Toys/rattle.ogg + soundHit: *PlushieSnakeSound - type: Clothing sprite: Objects/Fun/Plushies/snake.rsi quickEquip: false @@ -1003,28 +963,21 @@ sprite: Objects/Fun/toy_mouse.rsi state: icon - type: EmitSoundOnUse - sound: + sound: &PlushieMouseSound path: /Audio/Items/Toys/mousesqueek.ogg - type: EmitSoundOnLand - sound: - path: /Audio/Items/Toys/mousesqueek.ogg + sound: *PlushieMouseSound - type: EmitSoundOnActivate - sound: - path: /Audio/Items/Toys/mousesqueek.ogg + sound: *PlushieMouseSound - type: EmitSoundOnTrigger - sound: - path: /Audio/Items/Toys/mousesqueek.ogg + sound: *PlushieMouseSound - type: EmitSoundOnCollide - sound: - path: /Audio/Items/Toys/mousesqueek.ogg - - type: Food - requiresSpecialDigestion: true - useSound: - path: /Audio/Items/Toys/mousesqueek.ogg + sound: *PlushieMouseSound + - type: Edible + useSound: *PlushieMouseSound - type: MeleeWeapon wideAnimationRotation: -90 - soundHit: - path: /Audio/Items/Toys/mousesqueek.ogg + soundHit: *PlushieMouseSound - type: Clothing quickEquip: false sprite: Objects/Fun/toy_mouse.rsi @@ -1056,8 +1009,7 @@ sound: *PlushieVoxSound - type: EmitSoundOnCollide sound: *PlushieVoxSound - - type: Food - requiresSpecialDigestion: true + - type: Edible useSound: *PlushieVoxSound - type: MeleeWeapon wideAnimationRotation: 180 @@ -1121,8 +1073,7 @@ sound: *PlushieXenoSound - type: EmitSoundOnCollide sound: *PlushieXenoSound - - type: Food - requiresSpecialDigestion: true + - type: Edible useSound: *PlushieXenoSound - type: MeleeWeapon wideAnimationRotation: 180 @@ -1168,7 +1119,7 @@ sprite: Objects/Fun/Plushies/human.rsi state: icon - type: EmitSoundOnUse - sound: &PlushieHuman + sound: &PlushieHuman1 path: /Audio/Voice/Human/malescream_1.ogg params: volume: -8 @@ -1183,21 +1134,14 @@ params: volume: -8 - type: EmitSoundOnCollide - sound: + sound: &PlushieHuman4 path: /Audio/Voice/Human/malescream_4.ogg params: volume: -8 - - type: Food - requiresSpecialDigestion: true - useSound: - path: /Audio/Voice/Human/malescream_1.ogg - params: - volume: -8 + - type: Edible + useSound: *PlushieHuman1 - type: MeleeWeapon - soundHit: - path: /Audio/Voice/Human/malescream_4.ogg - params: - volume: -8 + soundHit: *PlushieHuman4 - type: EmitSoundOnTrigger sound: path: /Audio/Voice/Human/malescream_5.ogg @@ -1222,27 +1166,20 @@ sprite: Objects/Fun/Plushies/moth.rsi state: icon - type: EmitSoundOnUse - sound: + sound: &PlushieMothSound path: /Audio/Voice/Moth/moth_chitter.ogg - type: EmitSoundOnLand - sound: - path: /Audio/Voice/Moth/moth_chitter.ogg + sound: *PlushieMothSound - type: EmitSoundOnActivate - sound: - path: /Audio/Voice/Moth/moth_chitter.ogg + sound: *PlushieMothSound - type: EmitSoundOnTrigger - sound: - path: /Audio/Voice/Moth/moth_chitter.ogg + sound: *PlushieMothSound - type: EmitSoundOnCollide - sound: - path: /Audio/Voice/Moth/moth_chitter.ogg + sound: *PlushieMothSound - type: MeleeWeapon - soundHit: - path: /Audio/Voice/Moth/moth_chitter.ogg - - type: Food - requiresSpecialDigestion: true - useSound: - path: /Audio/Voice/Moth/moth_chitter.ogg + soundHit: *PlushieMothSound + - type: Edible + useSound: *PlushieMothSound - type: Clothing quickEquip: false sprite: Objects/Fun/Plushies/moth.rsi diff --git a/Resources/Prototypes/Entities/Objects/Specific/rehydrateable.yml b/Resources/Prototypes/Entities/Objects/Specific/rehydrateable.yml index 0d8a7d49d6..dd2c73e005 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/rehydrateable.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/rehydrateable.yml @@ -205,6 +205,8 @@ solutions: cube: maxVol: 1 # needs room for water + - type: Edible + solution: cube - type: Fixtures # BaseItem from PlushieCarp overrides fixtures, making carp not react to extinguishers fixtures: fix1: -- 2.51.2