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-lost-lid = The seal is broken, and there's no way to close it.
drink-component-on-examine-is-full = Full
drink-component-on-examine-is-mostly-full = Mostly Full
drink-component-on-examine-is-half-full = Halfway Full
tags:
- DrinkGlass
+# Cans and bottles
+- type: entity
+ abstract: true
+ id: BaseDrinkOpenable
+ components:
+ - type: Openable
+ - type: PressurizedSolution
+ solution: drink
+ - type: Shakeable
+ - type: Sealable
+
+# Cans and bottles (opened)
+- type: entity
+ abstract: true
+ parent: BaseDrinkOpenable
+ id: BaseDrinkOpenableOpen
+ components:
+ - type: Openable
+ opened: true
+ closeable: false # the lid disappeared somewhere
+ - type: Sealable
+ sealed: false
+ examineTextUnsealed: drink-component-on-examine-is-unsealed-lost-lid # inform the player the lid is gone
###
- type: entity
- parent: DrinkBase
- id: DrinkCartonBaseFull
abstract: true
+ parent: [ DrinkBase, BaseDrinkOpenable ]
+ id: DrinkCartonBaseFull
suffix: Full
components:
- type: Openable
closeable: true
closeSound:
collection: bottleCloseSounds
- - type: Sealable
- type: SolutionContainerManager
solutions:
drink:
maxVol: 50
- - type: PressurizedSolution
- solution: drink
- - type: Shakeable
- type: Sprite
state: icon
- type: Item
#In future maybe add generic plastic scrap trash/debris
- type: TrashOnSolutionEmpty
solution: drink
- - type: DnaSubstanceTrace
+ - type: PhysicalComposition
+ materialComposition:
+ Cardboard: 20
- type: entity
+ abstract: true
parent: DrinkCartonBaseFull
id: DrinkCartonBaseLargeFull
- abstract: true
components:
- type: SolutionContainerManager
solutions:
size: Normal
- type: entity
- id: DrinkCartonVisualsOpenable
abstract: true
+ id: DrinkCartonVisualsOpenable
components:
- type: Appearance
- type: GenericVisualizer
- state: icon
map: ["enum.OpenableVisuals.Layer"]
+##
+
- type: entity
parent: [DrinkCartonVisualsOpenable, DrinkCartonBaseFull]
id: DrinkJuiceLimeCarton
Quantity: 100
- type: Sprite
sprite: Objects/Consumable/Drinks/oatmilk.rsi
-
+
- type: entity
parent: [DrinkCartonVisualsOpenable, DrinkCartonBaseFull]
id: DrinkJuiceLemonCarton
Quantity: 50
- type: Sprite
sprite: Objects/Consumable/Drinks/lemonjuice.rsi
-
+
- type: entity
parent: [DrinkCartonVisualsOpenable, DrinkCartonBaseFull]
id: DrinkJuicePineappleCarton
# When adding new drinks also add to random spawner located in Resources\Prototypes\Entities\Markers\Spawners\Random\Food_Drinks\drinks_bottles.yml
- type: entity
- parent: DrinkBase
- id: DrinkBottlePlasticBaseFull
abstract: true
+ parent: [ DrinkBase, BaseDrinkOpenable ]
+ id: DrinkBottlePlasticBaseFull
suffix: Full
components:
- type: Tag
- type: PhysicalComposition
materialComposition:
Plastic: 100
- - type: DnaSubstanceTrace
- - type: PressurizedSolution
- solution: drink
- - type: Shakeable
- type: entity
- parent: DrinkBase
- id: DrinkBottlePlasticSmallBaseFull
abstract: true
+ parent: [ DrinkBase, BaseDrinkOpenable ]
+ id: DrinkBottlePlasticSmallBaseFull
suffix: Full
components:
- type: Item
- !type:DoActsBehavior
acts: [ "Destruction" ]
- !type:SpillBehavior { }
- - type: DnaSubstanceTrace
- - type: PressurizedSolution
- solution: drink
- type: TrashOnSolutionEmpty
solution: drink
- - type: Shakeable
- type: PhysicalComposition
materialComposition:
Plastic: 100
- type: entity
+ abstract: true
parent: DrinkBottlePlasticSmallBaseFull
id: DrinkBottleGlassSmallBaseFull
- abstract: true
components:
- type: SolutionContainerManager
solutions:
Glass: 100
- type: entity
+ abstract: true
parent: DrinkBottlePlasticBaseFull
id: DrinkBottleGlassBaseFull
- abstract: true
components:
- type: Sprite
state: icon
Glass: 100
- type: entity
- id: DrinkBottleVisualsOpenable
abstract: true
+ id: DrinkBottleVisualsOpenable
components:
- type: Appearance
- type: GenericVisualizer
map: ["enum.OpenableVisuals.Layer"]
- type: entity
- id: DrinkBottleVisualsAll
abstract: true
+ id: DrinkBottleVisualsAll
components:
- type: Appearance
- type: GenericVisualizer
# 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
+ parent: [ DrinkBase, BaseDrinkOpenable ]
id: DrinkCanBaseFull
components:
- - type: Drink
- - type: Openable
- - type: Shakeable
- type: SolutionContainerManager
solutions:
drink:
Quantity: 4
- ReagentId: Iron
Quantity: 1
- - type: MixableSolution
- solution: drink
- type: SolutionTransfer
canChangeTransferAmount: true
maxTransferAmount: 15
- type: Extractable
grindableSolutionName: grindable
- - type: UserInterface
- interfaces:
- enum.TransferAmountUiKey.Key:
- type: TransferAmountBoundUserInterface
- type: Sprite
state: icon
layers:
map: ["enum.OpenableVisuals.Layer"]
- type: FitsInDispenser
solution: drink
- - type: DrawableSolution
- solution: drink
- - type: RefillableSolution
- solution: drink
- - type: DrainableSolution
- solution: drink
- - type: PressurizedSolution
- solution: drink
- type: Appearance
- type: GenericVisualizer
visuals:
enum.OpenableVisuals.Layer:
True: {state: "icon_open"}
False: {state: "icon"}
- - type: Spillable
- solution: drink
- - type: MeleeWeapon
- soundNoDamage:
- path: "/Audio/Effects/Fluids/splat.ogg"
- damage:
- types:
- Blunt: 0
- type: Tool
qualities:
- Rolling
- type: Tag
tags:
- DrinkCan
- - type: DnaSubstanceTrace
##
# When adding new drinks also add to random spawner located in Resources/Prototypes/Entities/Markers/Spawners/Random/trash.yml
- type: entity
abstract: true
- parent: DrinkCanBaseFull
+ parent: [ BaseDrinkOpenableOpen, DrinkCanBaseFull ]
id: DrinkCanBaseEmpty
suffix: empty
components:
Quantity: 4
- ReagentId: Iron
Quantity: 1
- - type: Openable
- opened: true
- type: Tag
tags:
- DrinkCan
# 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
+ parent: DrinkBase
id: DrinkBaseCup
name: base cup
components:
solutions:
drink:
maxVol: 20
- - type: MixableSolution
- solution: drink
- type: FitsInDispenser
solution: drink
- - type: DrawableSolution
- solution: drink
- - type: RefillableSolution
- solution: drink
- - type: DrainableSolution
- solution: drink
- type: SolutionTransfer
canChangeTransferAmount: true
maxTransferAmount: 10
- - type: UserInterface
- interfaces:
- enum.TransferAmountUiKey.Key:
- type: TransferAmountBoundUserInterface
- - type: Drink
- type: Sprite
state: icon
- - type: Spillable
- solution: drink
- - type: MeleeWeapon
- soundNoDamage:
- path: "/Audio/Effects/Fluids/splat.ogg"
- damage:
- types:
- Blunt: 0
- - type: DnaSubstanceTrace
- type: Tag
tags:
- DrinkCup
- type: Sprite
sprite: Objects/Consumable/Drinks/mug_red.rsi
-# Filled
+## Filled
+
- type: entity
parent: DrinkBaseCup
id: DrinkHotCoco
state: icon
- type: TransformableContainer
-## Reagent filled
+## Filled
- type: entity
parent: DrinkGlass
sprite: Objects/Consumable/Drinks/jar_what.rsi
- type: entity
- id: BartenderMixer
- abstract: true
- components:
- - type: DrainableSolution
- solution: drink
- - type: Drink
- - type: DrawableSolution
- solution: drink
- - type: RefillableSolution
- solution: drink
- - type: SolutionTransfer
- canChangeTransferAmount: true
- - type: Spillable
- solution: drink
- - type: UserInterface
- interfaces:
- enum.TransferAmountUiKey.Key:
- type: TransferAmountBoundUserInterface
-
-- type: entity
- parent: BaseDrink
+ parent: DrinkBase
id: DrinkJigger
name: jigger
description: Like a shaker, but smaller. Used to control the amount of ingredients.
Steel: 20
- type: entity
- parent: BaseDrink
+ parent: DrinkBase
id: DrinkIceBucket
name: ice bucket
description: A special bucket of refreshy ice. Prohibited use for challenge with the same name!
# These can still be used as containers
- type: entity
- name: base empty bottle
- id: DrinkBottleBaseEmpty
- parent: BaseItem
abstract: true
- description: An empty bottle.
+ parent: [ BaseDrinkOpenableOpen, DrinkBottleGlassBaseFull ]
+ id: DrinkBottleBaseEmpty
suffix: Empty
components:
- - type: Sprite
- state: icon
- - type: Item
- size: Normal
- - type: SolutionContainerManager
- solutions:
- drink:
- maxVol: 100
- - type: SolutionTransfer
- canChangeTransferAmount: true
- maxTransferAmount: 5
- - type: Drink
- - type: MeleeWeapon
- soundNoDamage:
- path: "/Audio/Effects/Fluids/splat.ogg"
- damage:
- types:
- Blunt: 0
- - type: MixableSolution
- solution: drink
- - type: Spillable
- solution: drink
- - type: FitsInDispenser
- solution: drink
- - type: DrawableSolution
- solution: drink
- - type: RefillableSolution
- solution: drink
- - type: DrainableSolution
- solution: drink
- - type: UserInterface
- interfaces:
- enum.TransferAmountUiKey.Key:
- type: TransferAmountBoundUserInterface
- - type: DamageOnLand
- damage:
- types:
- Blunt: 5
- - type: DamageOtherOnHit
- damage:
- types:
- Blunt: 4
- - type: Damageable
- damageContainer: Inorganic
- - type: Destructible
- thresholds:
- - trigger:
- !type:DamageTrigger
- damage: 5
- behaviors:
- - !type:PlaySoundBehavior
- sound:
- collection: GlassBreak
- - !type:SpillBehavior { }
- - !type:SpawnEntitiesBehavior
- spawn:
- BrokenBottle:
- min: 1
- max: 1
- transferForensics: true
- - !type:DoActsBehavior
- acts: [ "Destruction" ]
- type: Tag
tags:
- Trash
- - type: PhysicalComposition
- materialComposition:
- Glass: 100
- type: SpaceGarbage
- - type: DnaSubstanceTrace
- type: entity
- name: base empty bottle
- id: DrinkBottleBaseSmallEmpty
- parent: DrinkBottleBaseEmpty
abstract: true
+ parent: DrinkBottleGlassSmallBaseFull
+ id: DrinkBottleBaseSmallEmpty
components:
- type: Item
size: Small
maxVol: 50
- type: entity
- name: base empty carton
- id: DrinkCartonBaseEmpty
- parent: BaseItem
abstract: true
- description: An empty carton.
+ parent: [ BaseDrinkOpenableOpen, DrinkCartonBaseFull ]
+ id: DrinkCartonBaseEmpty
suffix: Empty
components:
- - type: Sprite
- state: icon
- - type: SolutionContainerManager
- solutions:
- drink:
- maxVol: 50
- - type: MixableSolution
- solution: drink
- - type: SolutionTransfer
- canChangeTransferAmount: true
- maxTransferAmount: 5
- - type: Drink
- - type: Spillable
- solution: drink
- - type: FitsInDispenser
- solution: drink
- - type: DrawableSolution
- solution: drink
- - type: RefillableSolution
- solution: drink
- - type: DrainableSolution
- solution: drink
- - type: UserInterface
- interfaces:
- enum.TransferAmountUiKey.Key:
- type: TransferAmountBoundUserInterface
- - type: Damageable
- damageContainer: Inorganic
- - type: Destructible
- thresholds:
- - trigger:
- !type:DamageTrigger
- damage: 20
- behaviors:
- - !type:SpillBehavior { }
- - !type:DoActsBehavior
- acts: [ "Destruction" ]
- type: Tag
tags:
- Trash
- - type: PhysicalComposition
- materialComposition:
- Cardboard: 20
- type: SpaceGarbage
- type: entity
- name: base empty bottle
- id: DrinkCartonBaseLargeEmpty
- parent: DrinkCartonBaseEmpty
abstract: true
+ parent: DrinkCartonBaseEmpty
+ id: DrinkCartonBaseLargeEmpty
components:
- type: Item
size: Normal