Merge remote-tracking branch 'upstream/master' into up/drinks-yml

# Conflicts:
#	Resources/Locale/en-US/nutrition/components/drink-component.ftl
#	Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_metamorphic.yml
This commit is contained in:
iaada
2025-08-06 12:45:41 -05:00
137 changed files with 3333 additions and 1041 deletions

View File

@@ -256,3 +256,13 @@
license: "CC-BY-4.0"
copyright: "Clipped by FairlySadPanda (Github) from a sound created by CheChoDj (Freesound)"
source: "https://freesound.org/people/CheChoDj/sounds/609353/"
- files: [card_drag.ogg]
copyright: 'created by Tao7891'
license: CC0-1.0
source: https://github.com/space-wizards/space-station-14/pull/37363
- files: [card_tube_bonk.ogg]
copyright: 'created by Crinkem on Freesound'
license: "CC0-1.0"
source: https://freesound.org/people/Crinkem/sounds/492027/

Binary file not shown.

Binary file not shown.

View File

@@ -1308,5 +1308,12 @@ Entries:
id: 159
time: '2025-08-06T15:09:51.0000000+00:00'
url: https://github.com/space-wizards/space-station-14/pull/39421
- author: slarticodefast
changes:
- message: Added the "scale:multiplyvector" toolshed command.
type: Add
id: 160
time: '2025-08-06T17:23:06.0000000+00:00'
url: https://github.com/space-wizards/space-station-14/pull/39424
Name: Admin
Order: 2

View File

@@ -1,19 +1,4 @@
Entries:
- author: murolem
changes:
- message: Building orientation on fences, diagonal grilles and the diagonal shuttle
wall is now respected.
type: Fix
id: 8319
time: '2025-04-23T01:58:42.0000000+00:00'
url: https://github.com/space-wizards/space-station-14/pull/36488
- author: kosticia
changes:
- message: Added analog of donk-pockets for moth - moth-pockets
type: Add
id: 8320
time: '2025-04-23T05:36:55.0000000+00:00'
url: https://github.com/space-wizards/space-station-14/pull/34517
- author: AgentSmithRadio
changes:
- message: New food crates are now available for purchase from the automated trade
@@ -3906,3 +3891,17 @@
id: 8831
time: '2025-08-06T13:00:32.0000000+00:00'
url: https://github.com/space-wizards/space-station-14/pull/38852
- author: aada
changes:
- message: You can examine fuel tanks to see how much they're filled.
type: Add
id: 8832
time: '2025-08-06T16:11:19.0000000+00:00'
url: https://github.com/space-wizards/space-station-14/pull/39362
- author: Tao7891
changes:
- message: Craftable cardboard structures and equipment.
type: Add
id: 8833
time: '2025-08-06T16:58:07.0000000+00:00'
url: https://github.com/space-wizards/space-station-14/pull/37363

View File

@@ -102,5 +102,7 @@ command-description-scale-get =
Get an entity's sprite scale as set by ScaleVisualsComponent. Does not include any changes directly made in the SpriteComponent.
command-description-scale-multiply =
Multiply an entity's sprite size with a certain factor (without changing its fixture).
command-description-scale-multiplyvector =
Multiply an entity's sprite size with a certain 2d vector (without changing its fixture).
command-description-scale-multiplywithfixture =
Multiply an entity's sprite size with a certain factor (including its fixture).

View File

@@ -1,20 +0,0 @@
drink-component-on-use-is-empty = {CAPITALIZE(THE($owner))} is empty!
drink-component-on-examine-is-opened = [color=yellow]Opened[/color]
drink-component-on-examine-is-sealed = The seal is intact.
drink-component-on-examine-is-unsealed = The seal is broken.
drink-component-on-examine-is-unsealed-no-cork = The seal is broken, and the cork is gone.
drink-component-on-examine-is-unsealed-crown-cap = The seal is broken, and the crown cap is bent.
drink-component-try-use-drink-not-open = Open {$owner} first!
drink-component-try-use-drink-is-empty = {CAPITALIZE(THE($entity))} is empty!
drink-component-try-use-drink-cannot-drink = You can't drink anything!
drink-component-try-use-drink-had-enough = You can't drink more!
drink-component-try-use-drink-cannot-drink-other = They can't drink anything!
drink-component-try-use-drink-had-enough-other = They can't drink more!
drink-component-try-use-drink-success-slurp = Slurp
drink-component-try-use-drink-success-slurp-taste = Slurp. {$flavors}
drink-component-force-feed = {CAPITALIZE(THE($user))} is trying to make you drink something!
drink-component-force-feed-success = {CAPITALIZE(THE($user))} forced you to drink something! {$flavors}
drink-component-force-feed-success-user = You successfully feed {THE($target)}
drink-system-verb-drink = Drink

View File

@@ -1,29 +0,0 @@
### Interaction Messages
# When trying to eat food without the required utensil... but you gotta hold it
food-you-need-to-hold-utensil = You need to be holding {INDEFINITE($utensil)} {$utensil} to eat that!
food-nom = Nom. {$flavors}
food-swallow = You swallow { THE($food) }. {$flavors}
food-has-used-storage = You cannot eat { THE($food) } with an item stored inside.
food-system-remove-mask = You need to take off the {$entity} first.
## System
food-system-you-cannot-eat-any-more = You can't eat any more!
food-system-you-cannot-eat-any-more-other = {CAPITALIZE(SUBJECT($target))} can't eat any more!
food-system-try-use-food-is-empty = {CAPITALIZE(THE($entity))} is empty!
food-system-wrong-utensil = You can't eat {THE($food)} with {INDEFINITE($utensil)} {$utensil}.
food-system-cant-digest = You can't digest {THE($entity)}!
food-system-cant-digest-other = {CAPITALIZE(SUBJECT($target))} can't digest {THE($entity)}!
food-system-verb-eat = Eat
## Force feeding
food-system-force-feed = {CAPITALIZE(THE($user))} is trying to feed you something!
food-system-force-feed-success = {CAPITALIZE(THE($user))} forced you to eat something! {$flavors}
food-system-force-feed-success-user = You successfully feed {THE($target)}

View File

@@ -0,0 +1,53 @@
### Interaction Messages
# System
## When trying to ingest without the required utensil... but you gotta hold it
ingestion-you-need-to-hold-utensil = You need to be holding {INDEFINITE($utensil)} {$utensil} to eat that!
ingestion-try-use-is-empty = {CAPITALIZE(THE($entity))} is empty!
ingestion-try-use-wrong-utensil = You can't {$verb} {THE($food)} with {INDEFINITE($utensil)} {$utensil}.
ingestion-remove-mask = You need to take off the {$entity} first.
## Failed Ingestion
ingestion-you-cannot-ingest-any-more = You can't {$verb} any more!
ingestion-other-cannot-ingest-any-more = {CAPITALIZE(SUBJECT($target))} can't {$verb} any more!
ingestion-cant-digest = You can't digest {THE($entity)}!
ingestion-cant-digest-other = {CAPITALIZE(SUBJECT($target))} can't digest {THE($entity)}!
## Action Verbs, not to be confused with Verbs
ingestion-verb-food = Eat
ingestion-verb-drink = Drink
# Edible Component
edible-nom = Nom. {$flavors}
edible-slurp = Slurp. {$flavors}
edible-swallow = You swallow { THE($food) }
edible-gulp = Gulp. {$flavors}
edible-has-used-storage = You cannot {$verb} { THE($food) } with an item stored inside.
## Nouns
edible-noun-edible = edible
edible-noun-food = food
edible-noun-drink = drink
edible-noun-pill = pill
## Verbs
edible-verb-edible = ingest
edible-verb-food = eat
edible-verb-drink = drink
edible-verb-pill = swallow
## Force feeding
edible-force-feed = {CAPITALIZE(THE($user))} is trying to make you {$verb} something!
edible-force-feed-success = {CAPITALIZE(THE($user))} forced you to {$verb} something! {$flavors}
edible-force-feed-success-user = You successfully feed {THE($target)}

View File

@@ -1,2 +1,5 @@
openable-component-verb-open = Open
openable-component-verb-close = Close
openable-component-on-examine-is-opened = [color=yellow]Opened[/color]
openable-component-try-use-closed = Open {$owner} first!

View File

@@ -0,0 +1,2 @@
sealable-component-on-examine-is-sealed = The seal is intact.
sealable-component-on-examine-is-unsealed = The seal is broken.

View File

@@ -4,6 +4,12 @@
name: ruminant stomach
categories: [ HideSpawnMenu ]
components:
- type: Stomach
specialDigestible:
tags:
- Ruminant
- Wheat
- BananaPeel
- type: SolutionContainerManager
solutions:
stomach:

View File

@@ -155,6 +155,13 @@
flatReductions:
Blunt: 5
- type: damageModifierSet
id: Card
coefficients:
Slash: 2.0
Piercing: 0.1 # Holes easily poked through, but do little to structural integrity
Heat: 3.0
- type: damageModifierSet
id: Web # Very flammable, can be easily hacked and slashed, but shooting or hitting it is another story.
coefficients:

View File

@@ -568,3 +568,25 @@
itemIconStyle: BigItem
- type: InstantAction
event: !type:ToggleActionEvent
#card helmet
- type: entity
parent: ClothingHeadHelmetBase
id: CardHelmet
name: cardboard helmet
description: A medieval helmet built from cardboard.
components:
- type: Sprite
sprite: Clothing/Head/Helmets/card_helmet.rsi
- type: Clothing
sprite: Clothing/Head/Helmets/card_helmet.rsi
- type: IngestionBlocker
- type: Armor
modifiers:
coefficients:
Blunt: 0.95
- type: StaminaResistance
damageCoefficient: 0.95
- type: Construction
graph: cardHelmet
node: cardhelmet

View File

@@ -315,15 +315,16 @@
- type: Clothing
slots:
- HEAD
- type: Food
- type: Edible
edible: Drink
solution: drink
useSound: /Audio/Items/drink.ogg
eatMessage: drink-component-try-use-drink-success-slurp
delay: 0.5
forceFeedDelay: 1.5
- type: FlavorProfile
flavors:
- water
- type: DrainableSolution
solution: drink
- type: SolutionContainerManager
solutions:
drink:

View File

@@ -491,3 +491,22 @@
- type: ProtectedFromStepTriggers
slots: WITHOUT_POCKET
- type: entity
parent: ClothingOuterArmorBase
id: CardArmour
name: cardboard armour
description: A medieval chestpiece built from cardboard.
components:
- type: Sprite
sprite: Clothing/OuterClothing/Armor/card_armour.rsi
- type: Clothing
sprite: Clothing/OuterClothing/Armor/card_armour.rsi
- type: Armor
modifiers:
coefficients:
Blunt: 0.9
- type: StaminaResistance
damageCoefficient: 0.90
- type: Construction
graph: cardArmour
node: cardarmour

View File

@@ -201,7 +201,8 @@
- type: EdgeSpreader
id: Puddle
- type: StepTrigger
- type: Drink
- type: Edible
edible: Drink
delay: 3
transferAmount: 1
solution: puddle

View File

@@ -1054,10 +1054,10 @@
growthDelay: 20
- type: ExaminableHunger
- type: Wooly
- type: Food
- type: Edible
destroyOnEmpty: false
solution: wool
requiresSpecialDigestion: true
# Wooly prevents eating wool deleting the goat so its fine
requireDead: false
- type: FlavorProfile
flavors:

View File

@@ -31,10 +31,10 @@
id: FoodBreadBunBottom
parent: FoodBreadSliceBase
name: bottom bun
description: It's time to start building the burger tower.
description: It's time to start building the burger tower.
components:
- type: Item
size: Normal #patch until there is an adequate resizing system in place
size: Normal #patch until there is an adequate resizing system in place
- type: Food
- type: Sprite
drawdepth: Mobs
@@ -83,7 +83,7 @@
- type: FoodSequenceElement
entries:
Burger: BunTopBurger
# Base
- type: entity
@@ -95,8 +95,6 @@
flavors:
- bun
- meaty
- type: Food
transferAmount: 5
- type: Sprite
sprite: Objects/Consumable/Food/burger.rsi
- type: SolutionContainerManager
@@ -499,7 +497,7 @@
- ReagentId: Vitamin
Quantity: 8
- ReagentId: Sulfur # What you get for eating something with a flare in it
Quantity: 5
Quantity: 5
- type: Tag
tags:
- Meat
@@ -691,7 +689,7 @@
description: An elusive rib shaped burger with limited availability across the galaxy. Not as good as you remember it.
components:
- type: Food
trash:
trash:
- FoodKebabSkewer
- type: FlavorProfile
flavors:
@@ -702,7 +700,7 @@
- type: SolutionContainerManager
solutions:
food:
maxVol: 30
maxVol: 30
reagents:
- ReagentId: Nutriment
Quantity: 11
@@ -987,4 +985,4 @@
- type: Tag
tags:
- Meat

View File

@@ -9,7 +9,7 @@
- type: FlavorProfile
flavors:
- food
- type: Food
- type: Edible
- type: Sprite
- type: StaticPrice
price: 0

View File

@@ -10,13 +10,16 @@
- type: Sprite
state: produce
# let cows eat raw produce like wheat and oats
- type: Food
requiredStomachs: 2
- type: Edible
requiresSpecialDigestion: true
- type: Produce
- type: PotencyVisuals
- type: Appearance
- type: Extractable
grindableSolutionName: food
- type: Tag
tags:
- Ruminant
# For produce that can be immediately eaten
@@ -57,6 +60,7 @@
- type: Tag
tags:
- Wheat
- Ruminant
- type: entity
name: meatwheat bushel
@@ -176,6 +180,7 @@
- type: Tag
tags:
- Vegetable
- Ruminant
- type: entity
name: tower-cap log
@@ -323,7 +328,7 @@
- type: FlavorProfile
flavors:
- banana
- type: Food
- type: Edible
trash:
- TrashBananaPeel
- type: SolutionContainerManager
@@ -365,7 +370,7 @@
flavors:
- banana
- nothing
- type: Food
- type: Edible
trash:
- TrashMimanaPeel
- type: SolutionContainerManager
@@ -437,6 +442,7 @@
- Recyclable
- Trash
- BananaPeel
- Ruminant
- WhitelistChameleon
- HamsterWearable
- type: SolutionContainerManager
@@ -449,7 +455,7 @@
- type: Extractable
grindableSolutionName: food
- type: SpaceGarbage
- type: Food
- type: Edible
requiresSpecialDigestion: true
- type: Clothing
sprite: Objects/Specific/Hydroponics/banana.rsi
@@ -1190,7 +1196,7 @@
- type: FlavorProfile
flavors:
- corn
- type: Food
- type: Edible
trash:
- FoodCornTrash
- type: SolutionContainerManager
@@ -1895,7 +1901,7 @@
sprite: Objects/Specific/Hydroponics/gatfruit.rsi
- type: Produce
seedId: gatfruit
- type: Food
- type: Edible
trash:
- WeaponRevolverPython
- type: Tag
@@ -1930,7 +1936,7 @@
heldPrefix: produce
- type: Produce
seedId: realCapfruit
- type: Food
- type: Edible
trash:
- RevolverCapGun
- type: Tag
@@ -1949,7 +1955,7 @@
components:
- type: Produce
seedId: fakeCapfruit
- type: Food
- type: Edible
trash:
- RevolverCapGunFake
@@ -2353,7 +2359,7 @@
- type: FlavorProfile
flavors:
- bungo
- type: Food
- type: Edible
trash:
- FoodBungoPit
- type: SolutionContainerManager
@@ -2588,7 +2594,7 @@
- type: FlavorProfile
flavors:
- cotton
- type: Food
- type: Edible
requiresSpecialDigestion: true
- type: SolutionContainerManager
solutions:
@@ -2620,7 +2626,7 @@
- type: FlavorProfile
flavors:
- pyrotton
- type: Food
- type: Edible
requiresSpecialDigestion: true
- type: SolutionContainerManager
solutions:
@@ -2654,7 +2660,7 @@
- type: FlavorProfile
flavors:
- cherry
- type: Food
- type: Edible
trash:
- TrashCherryPit
- type: SolutionContainerManager
@@ -2729,7 +2735,7 @@
heldPrefix: produce
- type: Produce
seedId: anomalyBerry
- type: Food
- type: Edible
trash:
- EffectAnomalyFloraBulb # Random loot
- type: SolutionContainerManager

View File

@@ -769,6 +769,44 @@
shape:
- 0,0,0,2
- type: entity
parent: BaseItem
id: CardSword
name: cardboard sword
description: A cardboard tube thats been fashioned into a sword.
components:
- type: Sprite
sprite: Objects/Fun/card_sword.rsi
state: icon
- type: Clothing
sprite: Objects/Fun/card_sword.rsi
slots:
- Back
- SuitStorage
- type: StaminaDamageOnHit
damage: 6
- type: Appearance
- type: DisarmMalus
malus: 0
- type: MeleeWeapon
wideAnimationRotation: -135
attackRate: 1.25
damage:
types:
Blunt: 0.3
soundHit:
path: /Audio/Items/Toys/card_tube_bonk.ogg
- type: Construction
graph: CardSword
node: cardSword
- type: Item
size: Normal
storedSprite:
state: icon
sprite: Objects/Fun/card_sword.rsi
shape:
- 0,0,1,3
- type: entity
parent: BaseItem
id: ClownRecorder

View File

@@ -56,6 +56,13 @@
Quantity: 6
- type: Item
heldPrefix: cardboard
- type: FloorTile
outputs:
- Plating
- type: SpawnAfterInteract #Nuke after convert to FloorTile
prototype: CarpetCard
doAfter: 0.5
removeOnInteract: true
- type: entity
parent: MaterialCardboard
@@ -123,7 +130,7 @@
- state: cloth_3
map: ["base"]
- type: Appearance
- type: Food
- type: Edible
requiresSpecialDigestion: true
- type: FlavorProfile
flavors:
@@ -192,7 +199,7 @@
- type: Construction
graph: Durathread
node: MaterialDurathread
- type: Food
- type: Edible
requiresSpecialDigestion: true
- type: SolutionContainerManager
solutions:
@@ -421,7 +428,7 @@
- state: cotton_3
map: ["base"]
- type: Appearance
- type: Food
- type: Edible
requiresSpecialDigestion: true
- type: FlavorProfile
flavors:
@@ -480,7 +487,7 @@
- state: pyrotton_3
map: ["base"]
- type: Appearance
- type: Food
- type: Edible
requiresSpecialDigestion: true
- type: SolutionContainerManager
solutions:
@@ -540,7 +547,7 @@
- type: FlavorProfile
flavors:
- banana
- type: Food
- type: Edible
trash:
- TrashBananiumPeel
- type: BadFood
@@ -592,7 +599,7 @@
- type: Stack
count: 50
stackType: WebSilk
- type: Food
- type: Edible
requiresSpecialDigestion: true
- type: FlavorProfile
flavors:
@@ -735,7 +742,7 @@
- state: cotton_3
map: ["base"]
- type: Appearance
- type: Food
- type: Edible
- type: BadFood
- type: SolutionContainerManager
solutions:

View File

@@ -90,7 +90,7 @@
components:
- IgnoreKudzu
- type: Food
requiredStomachs: 2 # ruminants have 4 stomachs but i dont care to give them literally 4 stomachs. 2 is good
requiresSpecialDigestion: true
delay: 0.5
- type: FlavorProfile
flavors:
@@ -101,6 +101,9 @@
reagents:
- ReagentId: Nutriment
Quantity: 2
- type: Tag
tags:
- Ruminant
- type: entity
id: WeakKudzu

View File

@@ -180,6 +180,61 @@
- type: StaticPrice
price: 150
- type: entity
name: cardboard shield
parent: BaseShield
id: CardShield
description: A shield that wont shield you from much.
components:
- type: Sprite
state: cardshield-icon
- type: Item
heldPrefix: cardshield
- type: StaminaResistance
damageCoefficient: 0.95
worn: true
- type: Blocking
passiveBlockModifier:
coefficients:
Blunt: 1
Slash: 2
Piercing: 0.6
Heat: 3
activeBlockModifier:
coefficients:
Blunt: 0.9
Slash: 1.8
Piercing: 0.5
Heat: 2.5
flatReductions:
Blunt: 0.5
- type: Construction
graph: CardShield
node: cardShield
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 25
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- trigger:
!type:DamageTrigger
damage: 10 #Very very weak shield
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- !type:PlaySoundBehavior
sound: /Audio/Items/Toys/ToyFall2.ogg
- !type:SpawnEntitiesBehavior
spawn:
MaterialCardboard:
min: 2
max: 4
- type: StaticPrice
price: 20
- type: entity
name: makeshift shield
parent: BaseShield

View File

@@ -602,12 +602,11 @@
size: Tiny
sprite: Objects/Specific/Chemistry/pills.rsi
- type: Pill
- type: Food
- type: Edible
delay: 0.6
forceFeedDelay: 2
transferAmount: null
eatMessage: food-swallow
useSound: /Audio/Items/pill.ogg
edible: Pill
- type: BadFood
- type: FlavorProfile
ignoreReagents: []

View File

@@ -1,13 +1,14 @@
- type: entity
parent: BaseItem
parent: DrinkBase
id: Bucket
name: bucket
description: It's a boring old bucket.
components:
- type: Drink
solution: bucket
ignoreEmpty: true
- type: Clickable
- type: Edible
edible: Drink
solution: bucket
destroyOnEmpty: false
- type: Sprite
sprite: Objects/Tools/bucket.rsi
layers:

View File

@@ -185,3 +185,28 @@
- type: Construction
graph: ImprovisedArrowCarp
node: ImprovisedArrowCarp
- type: entity
parent: BaseArrow
id: ArrowCard
name: cardboard arrow
description: Cant kill no matter how hard you try.
components:
- type: Sprite
sprite: Objects/Weapons/Guns/Projectiles/arrows.rsi
layers:
- state: tail
color: white
- state: rod
color: brown
- state: tip
color: brown
- type: Projectile
damage:
types:
Blunt: 1
- type: StaminaDamageOnCollide
damage: 10
- type: Construction
graph: CardArrow
node: CardArrow

View File

@@ -261,3 +261,82 @@
path: /Audio/Effects/rustle1.ogg
openSound:
path: /Audio/Effects/rustle2.ogg
- type: entity
id: CardDoor
parent: BaseStructure
name: cardboard door
description: A door, where will it lead?
components:
- type: InteractionOutline
- type: Sprite
sprite: Structures/Doors/MineralDoors/card_door.rsi
layers:
- state: closed
map: ["enum.DoorVisualLayers.Base"]
- type: AnimationPlayer
- type: Physics
bodyType: Static
- type: Fixtures
fixtures:
fix1:
shape:
!type:PhysShapeAabb
bounds: "-0.49,-0.49,0.49,0.49"
density: 100
mask:
- FullTileMask
layer:
- FlimsyLayer
- type: Door
bumpOpen: false
clickOpen: true
canCrush: false
closeTimeOne: 0.2
closeTimeTwo: 0.6
openTimeOne: 0.6
openTimeTwo: 0.2
openingAnimationTime: 1.2
closingAnimationTime: 1.2
openSound:
path: /Audio/Effects/card_drag.ogg
closeSound:
path: /Audio/Effects/card_drag.ogg
- type: MeleeSound
soundGroups:
Brute:
path:
"/Audio/Weapons/pierce.ogg"
- type: Appearance
- type: Damageable
damageContainer: StructuralInorganic
damageModifierSet: Card
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 60 #excess damage (nuke?). avoid computational cost of spawning entities.
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- trigger:
!type:DamageTrigger
damage: 30
behaviors:
- !type:SpawnEntitiesBehavior
spawn:
MaterialCardboard:
min: 2
max: 4
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: Icon
sprite: Structures/Doors/MineralDoors/card_door.rsi
state: closed
- type: Construction
graph: DoorGraph
node: cardDoor
- type: NavMapDoor
- type: Occluder
- type: BlockWeather

View File

@@ -300,6 +300,61 @@
footstepSoundCollection:
collection: FootstepTile
- type: entity
id: TableCard
parent: TableBase
name: cardboard table
description: Cardboard sheets wrapped around a metal table frame.
components:
- type: Sprite
sprite: Structures/Furniture/Tables/card.rsi
- type: Icon
sprite: Structures/Furniture/Tables/card.rsi
- type: GlassTable #they named it that cause 'it would never be used elsewhere' or something, smh
climberDamage:
types:
Blunt: 6
tableDamage:
types:
Blunt: 15
tableMassLimit: 40
- type: Damageable
damageContainer: Inorganic
damageModifierSet: Card
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 45 #excess damage (nuke?). avoid computational cost of spawning entities.
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- !type:PlaySoundBehavior
sound: /Audio//Weapons/pierce.ogg
- trigger:
!type:DamageTrigger
damage: 15
behaviors:
- !type:PlaySoundBehavior
sound: /Audio//Weapons/pierce.ogg
- !type:SpawnEntitiesBehavior
spawn:
MaterialCardboard:
min: 1
max: 2
- !type:ChangeConstructionNodeBehavior
node: TableFrame
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: IconSmooth
key: cardtable
- type: Construction
graph: Table
node: TableCard
- type: FootstepModifier
footstepSoundCollection:
collection: FootstepTile
- type: entity
id: TableReinforcedGlass
parent: TableBase

View File

@@ -366,3 +366,60 @@
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: TrayScanReveal
#cardpet
- type: entity
id: CarpetCard
parent: BaseStructure
name: cardboard "carpet"
description: "Even lino is better."
components:
- type: Sprite
drawdepth: FloorTiles
sprite: Structures/Furniture/Carpets/card_carpet.rsi
- type: Icon
sprite: Structures/Furniture/Carpets/card_carpet.rsi
state: full
- type: IconSmooth
key: cardpets
additionalKeys:
- cards
base: carpet_
- type: Tag
tags:
- Carpet
- ForceFixRotations
- type: Physics
canCollide: false
- type: Clickable
- type: Fixtures
- type: Damageable
damageContainer: Inorganic
damageModifierSet: Card
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 40
behaviors: #excess damage (nuke?). avoid computational cost of spawning entities.
- !type:DoActsBehavior
acts: [ "Destruction" ]
- trigger:
!type:DamageTrigger
damage: 10
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- !type:SpawnEntitiesBehavior
spawn:
MaterialCardboard:
min: 1
max: 1
- type: Butcherable
butcheringType: Knife
butcherDelay: 1
spawned:
- id: MaterialCardboard1
amount: 1
- type: TrayScanReveal

View File

@@ -401,6 +401,40 @@
graph: Seat
node: chairSteelBench
- type: entity
name: cardboard stool
id: CardStool
parent: UnanchoredChairBase
description: Make sure you sit *really* gently.
components:
- type: Sprite
state: card-stool
- type: Construction
graph: Seat
node: stoolCard
- type: Damageable
damageContainer: Inorganic
damageModifierSet: Card
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 40
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- trigger:
!type:DamageTrigger
damage: 10
behaviors:
- !type:SpawnEntitiesBehavior
spawn:
MaterialCardboard:
min: 1
max: 2
- !type:DoActsBehavior
acts: ["Destruction"]
- type: entity
name: wooden bench
id: WoodenBench

View File

@@ -1628,3 +1628,74 @@
- type: IconSmooth
key: cobblebricks
base: cobblebrick
# Cardboard
- type: entity
id: Cardwall
parent: BaseStructure
name: cardboard wall
description: Budget cuts are hitting hard.
placement:
mode: SnapgridCenter
snap:
- Wall
components:
- type: MeleeSound
soundGroups:
Brute:
path:
"/Audio/Weapons/pierce.ogg"
- type: Tag
tags:
- Wall
- type: Sprite
drawdepth: SmallObjects #so bullets pass 'through'
sprite: Structures/Walls/card.rsi
- type: Icon
sprite: Structures/Walls/card.rsi
state: full
- type: Construction
graph: Cardwall
node: cardwall
deconstructionTarget: start
- type: Damageable
damageContainer: StructuralInorganic
damageModifierSet: Card
- type: Physics
bodyType: Static
- type: Fixtures
fixtures:
fix1:
shape:
!type:PhysShapeAabb
bounds: "-0.5,-0.5,0.5,0.5"
mask:
- FullTileMask
layer:
- FlimsyLayer
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 80 #excess damage (nuke?). avoid computational cost of spawning entities.
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- trigger:
!type:DamageTrigger
damage: 40
behaviors:
- !type:SpawnEntitiesBehavior
spawn:
MaterialCardboard:
min: 1
max: 2
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: IconSmooth
key: cards
base: card
- type: Occluder
- type: BlockWeather
- type: SunShadowCast

View File

@@ -31,7 +31,7 @@
query:
- !type:ComponentQuery
components:
- type: Food
- type: Edible
considerations:
- !type:TargetIsAliveCon
curve: !type:InverseBoolCurve
@@ -50,7 +50,7 @@
query:
- !type:ComponentQuery
components:
- type: Drink
- type: Edible
considerations:
- !type:TargetIsAliveCon
curve: !type:InverseBoolCurve

View File

@@ -0,0 +1,47 @@
# If you add a new prototype, you may want to consider adding it to IngestionSystem.API for other systems to use.
# But only if other systems/components might want it.
# Food
- type: edible
id: Food
useSound: !type:SoundCollectionSpecifier
params:
variation: 0.2
volume: -1
collection: eating # I think this *should* grab the sound specifier...
message: edible-nom
verb: edible-verb-food
noun: edible-noun-food
verbName: ingestion-verb-food
verbIcon: /Textures/Interface/VerbIcons/cutlery.svg.192dpi.png
# Drink
- type: edible
id: Drink
useSound: !type:SoundPathSpecifier
params:
variation: 0.25
volume: -2
path: /Audio/Items/drink.ogg
message: edible-slurp
verb: edible-verb-drink
noun: edible-noun-drink
verbName: ingestion-verb-drink
verbIcon: /Textures/Interface/VerbIcons/drink.svg.192dpi.png
# Pills!
- type: edible
id: Pill
useSound: !type:SoundPathSpecifier
params:
variation: 0.2
volume: -1
path: /Audio/Items/pill.ogg
message: edible-swallow
verb: edible-verb-pill
noun: edible-noun-pill
verbName: ingestion-verb-food
verbIcon: /Textures/Interface/VerbIcons/cutlery.svg.192dpi.png

View File

@@ -25,3 +25,31 @@
doAfter: 1
- node: helmet
entity: ClothingHeadHelmetBone
- type: constructionGraph
id: cardArmour
start: start
graph:
- node: start
edges:
- to: cardarmour
steps:
- material: Cardboard
amount: 10
doAfter: 4
- node: cardarmour
entity: CardArmour
- type: constructionGraph
id: cardHelmet
start: start
graph:
- node: start
edges:
- to: cardhelmet
steps:
- material: Cardboard
amount: 5
doAfter: 2
- node: cardhelmet
entity: CardHelmet

View File

@@ -68,6 +68,11 @@
- material: Steel
amount: 2
doAfter: 1
- to: stoolCard
steps:
- material: Cardboard
amount: 3
doAfter: 1
- to: chairWoodBench
steps:
- material: WoodPlank
@@ -231,6 +236,20 @@
- tool: Screwing
doAfter: 1
- node: stoolCard
entity: CardStool
edges:
- to: start
completed:
- !type:SpawnPrototype
prototype: MaterialCardboard1
amount: 3
- !type:PlaySound
sound: /Audio/Items/Toys/ToyFall2.ogg
steps:
- tool: Slicing
doAfter: 1
- node: chairWoodBench
entity: WoodenBench
edges:

View File

@@ -64,6 +64,12 @@
amount: 1
doAfter: 1
- to: TableCard
steps:
- material: Cardboard
amount: 3
doAfter: 1
- to: TableReinforcedGlass
steps:
- material: ReinforcedGlass
@@ -162,6 +168,18 @@
- tool: Anchoring
doAfter: 1
- node: TableCard
entity: TableCard
edges:
- to: TableFrame
completed:
- !type:SpawnPrototype
prototype: MaterialCardboard1
amount: 3
steps:
- tool: Slicing
doAfter: 2
- node: TableReinforcedGlass
entity: TableReinforcedGlass
edges:

View File

@@ -0,0 +1,25 @@
- type: constructionGraph
id: Cardwall
start: start
graph:
- node: start
edges:
- to: cardwall
steps:
- material: Cardboard
amount: 3
doAfter: 3
- node: cardwall
entity: Cardwall
edges:
- to: start
completed:
- !type:PlaySound
sound: /Audio/Items/Toys/ToyFall2.ogg
- !type:SpawnPrototype
prototype: MaterialCardboard1
amount: 3
- !type:DeleteEntity {}
steps:
- tool: Slicing
doAfter: 1.2

View File

@@ -55,6 +55,13 @@
- material: Paper
amount: 20
doAfter: 15
- to: cardDoor
completed:
- !type:SnapToGrid { }
steps:
- material: Cardboard
amount: 5
doAfter: 6
- node: metalDoor
entity: MetalDoor
edges:
@@ -121,6 +128,20 @@
steps:
- tool: Anchoring
doAfter: 15
- node: cardDoor
entity: CardDoor
edges:
- to: start
completed:
- !type:PlaySound
sound: /Audio/Items/Toys/ToyFall2.ogg
- !type:SpawnPrototype
prototype: MaterialCardboard1
amount: 5
- !type:DeleteEntity {}
steps:
- tool: Slicing
doAfter: 2
- node: bananiumDoor
entity: BananiumDoor
edges:

View File

@@ -0,0 +1,17 @@
- type: constructionGraph
id: CardShield
start: start
graph:
- node: start
edges:
- to: cardShield
steps:
- material: Cable
amount: 2
doAfter: 2
- material: Cardboard
amount: 6
doAfter: 2
- node: cardShield
entity: CardShield

View File

@@ -0,0 +1,14 @@
- type: constructionGraph
id: CardSword
start: start
graph:
- node: start
edges:
- to: cardSword
steps:
- material: Cardboard
amount: 6
doAfter: 3
- node: cardSword
entity: CardSword

View File

@@ -90,3 +90,22 @@
- node: ImprovisedArrowCarp
entity: ArrowImprovisedCarp
- type: constructionGraph
id: CardArrow
start: start
graph:
- node: start
edges:
- to: CardArrow
steps:
- material: Cloth
amount: 1
doAfter: 0.5
- material: Cardboard
amount: 1
doAfter: 0.5
- node: CardArrow
entity: ArrowCard

View File

@@ -30,6 +30,22 @@
category: construction-category-clothing
objectType: Item
- type: construction
id: cardHelmet
graph: cardHelmet
startNode: start
targetNode: cardhelmet
category: construction-category-clothing
objectType: Item
- type: construction
id: cardArmour
graph: cardArmour
startNode: start
targetNode: cardarmour
category: construction-category-clothing
objectType: Item
- type: construction
id: BananaClownMask
graph: BananaClownMask

View File

@@ -155,6 +155,18 @@
conditions:
- !type:TileNotBlocked
- type: construction
id: StoolCard
graph: Seat
startNode: start
targetNode: stoolCard
category: construction-category-furniture
objectType: Structure
placementMode: SnapgridCenter
canBuildInImpassable: false
conditions:
- !type:TileNotBlocked
- type: construction
id: ChairWoodBench
graph: Seat
@@ -230,6 +242,18 @@
conditions:
- !type:TileNotBlocked
- type: construction
id: TableCard
graph: Table
startNode: start
targetNode: TableCard
category: construction-category-furniture
objectType: Structure
placementMode: SnapgridCenter
canBuildInImpassable: false
conditions:
- !type:TileNotBlocked
- type: construction
id: TableReinforcedGlass
graph: Table

View File

@@ -207,6 +207,19 @@
conditions:
- !type:TileNotBlocked
- type: construction
id: Cardwall
graph: Cardwall
startNode: start
targetNode: cardwall
category: construction-category-structures
conditions:
- !type:TileNotBlocked
failIfSpace: false
objectType: Structure
placementMode: SnapgridCenter
canRotate: false
- type: construction
id: Grille
graph: Grille
@@ -1192,6 +1205,16 @@
placementMode: SnapgridCenter
canBuildInImpassable: false
- type: construction
id: CardDoor
graph: DoorGraph
startNode: start
targetNode: cardDoor
category: construction-category-structures
objectType: Structure
placementMode: SnapgridCenter
canBuildInImpassable: false
- type: construction
id: PlasticFlapsClear
name: construction-recipe-plastic-flaps-clear

View File

@@ -102,6 +102,14 @@
category: construction-category-weapons
objectType: Item
- type: construction
id: CardShield
graph: CardShield
startNode: start
targetNode: cardShield
category: construction-category-weapons
objectType: Item
- type: construction
id: MakeshiftShield
graph: MakeshiftShield
@@ -142,6 +150,14 @@
category: construction-category-weapons
objectType: Item
- type: construction
id: CardArrow
graph: CardArrow
startNode: start
targetNode: CardArrow
category: construction-category-weapons
objectType: Item
- type: construction
id: ImprovisedBow
graph: ImprovisedBow
@@ -165,3 +181,11 @@
targetNode: icon
category: construction-category-weapons
objectType: Item
- type: construction
id: CardSword
graph: CardSword
startNode: start
targetNode: cardSword
category: construction-category-weapons
objectType: Item

View File

@@ -1199,6 +1199,9 @@
- type: Tag
id: RollingPin
- type: Tag
id: Ruminant
- type: Tag
id: SaltShaker

Binary file not shown.

After

Width:  |  Height:  |  Size: 831 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 852 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 419 B

View File

@@ -0,0 +1,22 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "Sprites by TaoNewt (github)",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "icon"
},
{
"name": "equipped-HELMET",
"directions": 4
},
{
"name": "equipped-HELMET-vox",
"directions": 4
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 472 B

View File

@@ -0,0 +1,22 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "Sprites by TaoNewt (github)",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "icon"
},
{
"name": "equipped-OUTERCLOTHING",
"directions": 4
},
{
"name": "equipped-OUTERCLOTHING-vox",
"directions": 4
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 503 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 503 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 486 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 523 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 503 B

View File

@@ -0,0 +1,30 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "Sprites by TaoNewt (github)",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "icon"
},
{
"name": "inhand-left",
"directions": 4
},
{
"name": "inhand-right",
"directions": 4
},
{
"name": "equipped-BACKPACK",
"directions": 4
},
{
"name": "equipped-SUITSTORAGE",
"directions": 4
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 425 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 844 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 818 B

View File

@@ -1,7 +1,7 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "Taken from https://github.com/Citadel-Station-13/Citadel-Station-13/commit/84223c65f5caf667a84f3c0f49bc2a41cdc6c4e3",
"copyright": "Taken from https://github.com/Citadel-Station-13/Citadel-Station-13/commit/84223c65f5caf667a84f3c0f49bc2a41cdc6c4e3, card shield sprites by TaoNewt (github)",
"size": {
"x": 32,
"y": 32
@@ -51,6 +51,18 @@
"name": "ratvarian-inhand-left",
"directions": 4
},
{
"name": "cardshield-icon"
},
{
"name": "cardshield-inhand-right",
"directions": 4
},
{
"name": "cardshield-inhand-left",
"directions": 4
},
{
"name": "mirror-icon",
"delays": [

Binary file not shown.

After

Width:  |  Height:  |  Size: 446 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 968 B

View File

@@ -0,0 +1,57 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "Sprites by TaoNewt (github)",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "closed",
"directions": 1,
"delays": [
[
1.0
]
]
},
{
"name": "closing",
"directions": 1,
"delays": [
[
0.2,
0.2,
0.2,
0.2,
0.2,
0.2
]
]
},
{
"name": "open",
"directions": 1,
"delays": [
[
1.0
]
]
},
{
"name": "opening",
"directions": 1,
"delays": [
[
0.2,
0.2,
0.2,
0.2,
0.2,
0.2
]
]
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 227 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1005 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 503 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 502 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 502 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 507 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 503 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 507 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 545 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 282 B

View File

@@ -0,0 +1,46 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "Sprites by TaoNewt (github)",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "full"
},
{
"name": "carpet_0",
"directions": 4
},
{
"name": "carpet_1",
"directions": 4
},
{
"name": "carpet_2",
"directions": 4
},
{
"name": "carpet_3",
"directions": 4
},
{
"name": "carpet_4",
"directions": 4
},
{
"name": "carpet_5",
"directions": 4
},
{
"name": "carpet_6",
"directions": 4
},
{
"name": "carpet_7",
"directions": 4
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 449 B

View File

@@ -0,0 +1,163 @@
{
"version": 1,
"size": {
"x": 32,
"y": 32
},
"license": "CC-BY-SA-3.0",
"copyright": "Sprites by TaoNewt (github)",
"states": [
{
"name": "full",
"delays": [
[
1
]
]
},
{
"name": "state_0",
"directions": 4,
"delays": [
[
1.0
],
[
1.0
],
[
1.0
],
[
1.0
]
]
},
{
"name": "state_1",
"directions": 4,
"delays": [
[
1.0
],
[
1.0
],
[
1.0
],
[
1.0
]
]
},
{
"name": "state_2",
"directions": 4,
"delays": [
[
1.0
],
[
1.0
],
[
1.0
],
[
1.0
]
]
},
{
"name": "state_3",
"directions": 4,
"delays": [
[
1.0
],
[
1.0
],
[
1.0
],
[
1.0
]
]
},
{
"name": "state_4",
"directions": 4,
"delays": [
[
1.0
],
[
1.0
],
[
1.0
],
[
1.0
]
]
},
{
"name": "state_5",
"directions": 4,
"delays": [
[
1.0
],
[
1.0
],
[
1.0
],
[
1.0
]
]
},
{
"name": "state_6",
"directions": 4,
"delays": [
[
1.0
],
[
1.0
],
[
1.0
],
[
1.0
]
]
},
{
"name": "state_7",
"directions": 4,
"delays": [
[
1.0
],
[
1.0
],
[
1.0
],
[
1.0
]
]
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 658 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 603 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 658 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 626 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 534 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 661 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 581 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 450 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 766 B

View File

@@ -102,6 +102,10 @@
{
"name": "xeno-chair",
"directions": 4
},
{
"name": "card-stool",
"directions": 4
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 745 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 508 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 745 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 581 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 514 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 556 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 604 B

Some files were not shown because too many files have changed in this diff Show More