--- /dev/null
+# 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
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:
# 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:
tags:
- DrinkCup
+- type: entity
+ abstract: true
+ parent: DrinkBaseCup
+ id: DrinkBaseMug
+ name: mug
+ description: A mug.
+ components:
+ - type: Sprite
+ sprite: Objects/Consumable/Drinks/mug.rsi
+ layers:
+ - state: icon-0
+ - map: ["enum.SolutionContainerLayers.Fill"]
+ state: icon-3
+ visible: false
+ - type: Appearance
+ - type: SolutionContainerVisuals
+ maxFillLevels: 3
+ fillBaseName: icon-
+ - type: PhysicalComposition
+ materialComposition:
+ Glass: 25
+
+##
+
+# Misc Cups
- type: entity
parent: DrinkBaseCup
id: DrinkGoldenCup
- type: entity
parent: DrinkBaseCup
- id: DrinkBaseMug
- abstract: true
- name: mug
- description: A mug.
+ id: DrinkWaterCup
+ name: water cup
+ description: A paper water cup.
components:
- type: Sprite
- sprite: Objects/Consumable/Drinks/mug.rsi
+ sprite: Objects/Consumable/Drinks/water_cup.rsi
layers:
- - state: icon-0
- - map: ["enum.SolutionContainerLayers.Fill"]
- state: icon-3
- visible: false
+ - state: icon-0
+ - map: ["enum.SolutionContainerLayers.Fill"]
+ state: icon-1
- type: Appearance
- type: SolutionContainerVisuals
- maxFillLevels: 3
+ maxFillLevels: 1
fillBaseName: icon-
- - type: PhysicalComposition
- materialComposition:
- Glass: 25
+ - 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
- type: Sprite
sprite: Objects/Consumable/Drinks/mug_red.rsi
+# Filled
- type: entity
parent: DrinkBaseCup
id: DrinkHotCoco
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
-# 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
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
- 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
- type: Icon
sprite: Objects/Consumable/Drinks/beerglass.rsi
state: icon
- - type: Tag
- tags:
- - Beer
- type: entity
parent: DrinkGlass
- type: Icon
sprite: Objects/Consumable/Drinks/iced_beerglass.rsi
state: icon
- - type: Tag
- tags:
- - Beer
- type: entity
parent: DrinkGlass
sprite: Objects/Consumable/Drinks/kiraspecial.rsi
state: icon
-
- type: entity
parent: DrinkGlass
id: DrinkLemonadeGlass
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
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