cups and metamorphic

This commit is contained in:
iaada
2025-07-25 00:05:30 -05:00
parent 7f96244ec5
commit 94f089a1c6
4 changed files with 244 additions and 235 deletions

View File

@@ -0,0 +1,186 @@
# TODO: Find remaining cans and move to drinks_cans
# TODO: Find empty containers (e.g. mug, pitcher) and move to their own yml
# For cups, beakers, and other fully accessible solutions
- type: entity
abstract: true
parent: BaseItem
id: DrinkBase
components:
- type: Sprite
state: icon
- type: MeleeWeapon
soundNoDamage:
path: "/Audio/Effects/Fluids/splat.ogg"
damage:
types:
Blunt: 0
- type: DnaSubstanceTrace
- type: Drink
- type: Spillable
solution: drink
- type: MixableSolution
solution: drink
- type: DrawableSolution
solution: drink
- type: RefillableSolution
solution: drink
- type: DrainableSolution
solution: drink
- type: SolutionContainerManager
solutions:
drink:
maxVol: 30
- type: SolutionTransfer
canChangeTransferAmount: true
- type: UserInterface
interfaces:
enum.TransferAmountUiKey.Key:
type: TransferAmountBoundUserInterface
# A fragile, transparent glass cup
- type: entity
abstract: true
parent: DrinkBase
id: DrinkGlassBase
components:
- type: Damageable
damageContainer: Inorganic
damageModifierSet: Glass
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 5
behaviors:
- !type:PlaySoundBehavior
sound:
collection: GlassBreak
- !type:SpillBehavior { }
- !type:SpawnEntitiesBehavior
spawn:
ShardGlass:
min: 1
max: 1
transferForensics: true
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: DamageOnLand
ignoreResistances: true
damage:
types:
Blunt: 5
- type: DamageOtherOnHit
damage:
types:
Blunt: 5
- type: PhysicalComposition
materialComposition:
Glass: 25
- type: ExaminableSolution
solution: drink
- type: FitsInDispenser
solution: drink
- type: Tag
tags:
- DrinkGlass
###
# TODO: MOVE
- type: entity
parent: DrinkGlassBase
id: DrinkTeapot
name: teapot # short and stout
description: An elegant teapot. It simply oozes class.
components:
- type: SolutionContainerManager
solutions:
drink:
maxVol: 100
reagents:
- ReagentId: Tea
Quantity: 100
- type: Sprite
sprite: Objects/Consumable/Drinks/teapot.rsi
- type: entity
name: coupe glass
description: A classic thin neck coupe glass, the icon of fragile labels on crates around the galaxy.
parent: DrinkGlassBase
id: DrinkGlassCoupeShaped
components:
- type: Sprite
sprite: Objects/Consumable/Drinks/glass_coupe_shape.rsi
layers:
- state: icon
map: [ "enum.SolutionContainerLayers.Base" ]
- state: fill1
map: [ "enum.SolutionContainerLayers.Fill" ]
visible: false
- state: icon-front
map: [ "enum.SolutionContainerLayers.Overlay" ]
- type: Appearance
- type: SolutionContainerManager
solutions:
drink:
maxVol: 30
- type: SolutionContainerVisuals
maxFillLevels: 5
fillBaseName: fill
inHandsMaxFillLevels: 1
inHandsFillBaseName: -fill-
#
- type: entity
parent: DrinkGlassBase
id: DrinkShakeBlue
name: blue milkshake
description: ''
components:
- type: Drink
- type: Sprite
sprite: Objects/Consumable/Drinks/shake-blue.rsi
- type: entity
parent: DrinkGlassBase
id: DrinkShakeEmpty
name: shakeempty
description: ''
components:
- type: Drink
- type: Sprite
sprite: Objects/Consumable/Drinks/shake-empty.rsi
- type: entity
parent: DrinkGlassBase
id: DrinkShakeMeat
name: meat shake
description: ''
components:
- type: Drink
- type: Sprite
sprite: Objects/Consumable/Drinks/shake-meat.rsi
- type: entity
parent: DrinkGlassBase
id: DrinkShakeRobo
name: robo shake
description: ''
components:
- type: Drink
- type: Sprite
sprite: Objects/Consumable/Drinks/shake-robo.rsi
- type: entity
parent: DrinkGlassBase
id: DrinkShakeWhite
name: white shake
description: ''
components:
- type: Drink
- type: Sprite
sprite: Objects/Consumable/Drinks/shake-white.rsi

View File

@@ -65,10 +65,10 @@
description: Sweetened drink with a grape flavor and a deep purple color.
- type: entity
parent: [ DrinkCanBaseEmpty, DrinkGrapeCan ]
id: DrinkGrapeCanEmpty
name: grape soda can
description: Sweetened drink with a grape flavor and a deep purple color.
parent: [ DrinkCanBaseEmpty, DrinkRootBeerCan ]
id: DrinkRootBeerCanEmpty
name: root beer can
description: Some of that tasty root beer goodness, now in a portable can!
components:
- type: Tag
tags:

View File

@@ -1,10 +1,10 @@
# Empty drink containers; different from bottles in that these are intended to be spawned empty
# When adding new drinks also add to random spawner located in Resources\Prototypes\Entities\Markers\Spawners\Random\Food_Drinks\drinks_soda.yml
- type: entity
abstract: true
parent: BaseItem
id: DrinkBaseCup
name: base cup
abstract: true
components:
- type: SolutionContainerManager
solutions:
@@ -44,23 +44,9 @@
- DrinkCup
- type: entity
parent: DrinkBaseCup
id: DrinkGoldenCup
name: golden cup
description: A golden cup.
components:
- type: Sprite
sprite: Objects/Consumable/Drinks/golden_cup.rsi
- type: StaticPrice
price: 125
- type: PhysicalComposition
materialComposition:
Gold: 100
- type: entity
abstract: true
parent: DrinkBaseCup
id: DrinkBaseMug
abstract: true
name: mug
description: A mug.
components:
@@ -79,6 +65,52 @@
materialComposition:
Glass: 25
##
# Misc Cups
- type: entity
parent: DrinkBaseCup
id: DrinkGoldenCup
name: golden cup
description: A golden cup.
components:
- type: Sprite
sprite: Objects/Consumable/Drinks/golden_cup.rsi
- type: StaticPrice
price: 125
- type: PhysicalComposition
materialComposition:
Gold: 100
- type: entity
parent: DrinkBaseCup
id: DrinkWaterCup
name: water cup
description: A paper water cup.
components:
- type: Sprite
sprite: Objects/Consumable/Drinks/water_cup.rsi
layers:
- state: icon-0
- map: ["enum.SolutionContainerLayers.Fill"]
state: icon-1
- type: Appearance
- type: SolutionContainerVisuals
maxFillLevels: 1
fillBaseName: icon-
- type: Tag
tags:
- Trash
- WhitelistChameleon
- type: TrashOnSolutionEmpty
solution: drink
- type: Clothing
slots:
- HEAD
quickEquip: false
sprite: Clothing/Head/Hats/party_water_cup.rsi
# Mugs
- type: entity
parent: DrinkBaseMug
id: DrinkMug
@@ -181,6 +213,7 @@
- type: Sprite
sprite: Objects/Consumable/Drinks/mug_red.rsi
# Filled
- type: entity
parent: DrinkBaseCup
id: DrinkHotCoco
@@ -338,32 +371,3 @@
sprite: Objects/Consumable/Drinks/lean.rsi
- type: TrashOnSolutionEmpty
solution: drink
- type: entity
parent: DrinkBaseCup
id: DrinkWaterCup
name: water cup
description: A paper water cup.
components:
- type: Drink
- type: Sprite
sprite: Objects/Consumable/Drinks/water_cup.rsi
layers:
- state: icon-0
- map: ["enum.SolutionContainerLayers.Fill"]
state: icon-1
- type: Appearance
- type: SolutionContainerVisuals
maxFillLevels: 1
fillBaseName: icon-
- type: Tag
tags:
- Trash
- WhitelistChameleon
- type: TrashOnSolutionEmpty
solution: drink
- type: Clothing
slots:
- HEAD
quickEquip: false
sprite: Clothing/Head/Hats/party_water_cup.rsi

View File

@@ -1,87 +1,6 @@
# TODO: Find remaining cans and move to drinks_cans
# TODO: Find empty containers (e.g. mug, pitcher) and move to their own yml
# File for the metamorphic glass and pre-filled metamorph glass
# TODO Autogenerate prototypes so this file isn't 1000s of lines
# When adding new drinks also add to random spawner located in Resources\Prototypes\Entities\Markers\Spawners\Random\Food_Drinks\drinks_glass.yml
- type: entity
parent: BaseItem
id: DrinkBase
abstract: true
components:
- type: SolutionContainerManager
solutions:
drink:
maxVol: 30
- type: MixableSolution
solution: drink
- type: SolutionTransfer
canChangeTransferAmount: true
- type: Drink
- type: Sprite
state: icon
- type: MeleeWeapon
soundNoDamage:
path: "/Audio/Effects/Fluids/splat.ogg"
damage:
types:
Blunt: 0
- type: Spillable
solution: drink
- type: DrawableSolution
solution: drink
- type: RefillableSolution
solution: drink
- type: DrainableSolution
solution: drink
- type: UserInterface
interfaces:
enum.TransferAmountUiKey.Key:
type: TransferAmountBoundUserInterface
- type: DnaSubstanceTrace
- type: entity
parent: DrinkBase
id: DrinkGlassBase
abstract: true
components:
- type: Damageable
damageContainer: Inorganic
damageModifierSet: Glass
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 5
behaviors:
- !type:PlaySoundBehavior
sound:
collection: GlassBreak
- !type:SpillBehavior { }
- !type:SpawnEntitiesBehavior
spawn:
ShardGlass:
min: 1
max: 1
transferForensics: true
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: DamageOnLand
ignoreResistances: true
damage:
types:
Blunt: 5
- type: DamageOtherOnHit
damage:
types:
Blunt: 5
- type: PhysicalComposition
materialComposition:
Glass: 25
- type: ExaminableSolution
solution: drink
- type: FitsInDispenser
solution: drink
- type: Tag
tags:
- DrinkGlass
# Transformable container - normal glass
- type: entity
@@ -114,32 +33,7 @@
state: icon
- type: TransformableContainer
- type: entity
name: coupe glass
description: A classic thin neck coupe glass, the icon of fragile labels on crates around the galaxy.
parent: DrinkGlassBase
id: DrinkGlassCoupeShaped
components:
- type: Sprite
sprite: Objects/Consumable/Drinks/glass_coupe_shape.rsi
layers:
- state: icon
map: [ "enum.SolutionContainerLayers.Base" ]
- state: fill1
map: [ "enum.SolutionContainerLayers.Fill" ]
visible: false
- state: icon-front
map: [ "enum.SolutionContainerLayers.Overlay" ]
- type: Appearance
- type: SolutionContainerManager
solutions:
drink:
maxVol: 30
- type: SolutionContainerVisuals
maxFillLevels: 5
fillBaseName: fill
inHandsMaxFillLevels: 1
inHandsFillBaseName: -fill-
# Reagent fills
- type: entity
parent: DrinkGlass
@@ -149,10 +43,10 @@
- type: SolutionContainerManager
solutions:
drink:
maxVol: 20
maxVol: 30
reagents:
- ReagentId: Absinthe
Quantity: 20
Quantity: 30
- type: Icon
sprite: Objects/Consumable/Drinks/absintheglass.rsi
state: icon
@@ -409,9 +303,6 @@
- type: Icon
sprite: Objects/Consumable/Drinks/beerglass.rsi
state: icon
- type: Tag
tags:
- Beer
- type: entity
parent: DrinkGlass
@@ -1159,9 +1050,6 @@
- type: Icon
sprite: Objects/Consumable/Drinks/iced_beerglass.rsi
state: icon
- type: Tag
tags:
- Beer
- type: entity
parent: DrinkGlass
@@ -1339,7 +1227,6 @@
sprite: Objects/Consumable/Drinks/kiraspecial.rsi
state: icon
- type: entity
parent: DrinkGlass
id: DrinkLemonadeGlass
@@ -2130,22 +2017,6 @@
sprite: Objects/Consumable/Drinks/teaglass.rsi
state: icon
- type: entity
parent: DrinkGlassBase
id: DrinkTeapot
name: teapot # short and stout
description: An elegant teapot. It simply oozes class.
components:
- type: SolutionContainerManager
solutions:
drink:
maxVol: 100
reagents:
- ReagentId: Tea
Quantity: 100
- type: Sprite
sprite: Objects/Consumable/Drinks/teapot.rsi
- type: entity
parent: DrinkGlass
id: DrinkTequilaGlass
@@ -2670,58 +2541,6 @@
sprite: Objects/Consumable/Drinks/whiskeysour.rsi
state: icon
# TODO: MOVE
- type: entity
parent: DrinkGlassBase
id: DrinkShakeBlue
name: blue milkshake
description: ''
components:
- type: Drink
- type: Sprite
sprite: Objects/Consumable/Drinks/shake-blue.rsi
- type: entity
parent: DrinkGlassBase
id: DrinkShakeEmpty
name: shakeempty
description: ''
components:
- type: Drink
- type: Sprite
sprite: Objects/Consumable/Drinks/shake-empty.rsi
- type: entity
parent: DrinkGlassBase
id: DrinkShakeMeat
name: meat shake
description: ''
components:
- type: Drink
- type: Sprite
sprite: Objects/Consumable/Drinks/shake-meat.rsi
- type: entity
parent: DrinkGlassBase
id: DrinkShakeRobo
name: robo shake
description: ''
components:
- type: Drink
- type: Sprite
sprite: Objects/Consumable/Drinks/shake-robo.rsi
- type: entity
parent: DrinkGlassBase
id: DrinkShakeWhite
name: white shake
description: ''
components:
- type: Drink
- type: Sprite
sprite: Objects/Consumable/Drinks/shake-white.rsi
- type: entity
parent: DrinkGlass
id: DrinkBloodGlass