# 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
+# For cups, bottles, beakers, and other freely accessible solutions
- type: entity
abstract: true
parent: BaseItem
tags:
- DrinkGlass
+# A destructible, opaque plastic bottle
+- type: entity
+ abstract: true
+ parent: DrinkBase
+ id: DrinkPlasticBase
+ components:
+ - type: Damageable
+ damageContainer: Inorganic
+ - type: Destructible
+ thresholds:
+ - trigger:
+ !type:DamageTrigger
+ damage: 5
+ behaviors:
+ - !type:SpillBehavior { }
+ - !type:DoActsBehavior
+ acts: [ "Destruction" ]
+ - type: PhysicalComposition
+ materialComposition:
+ Plastic: 25
+
# Cans and bottles
- type: entity
abstract: true
parent: BaseDrinkOpenable
id: BaseDrinkOpenableOpen
components:
+ - type: Sprite
+ layers:
+ - state: icon_open
- 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
+# An empty drink, often paired with BaseDrinkOpenableOpen
+- type: entity
+ abstract: true
+ id: BaseDrinkEmptyTrash
+ suffix: Empty
+ components:
+ - type: SpaceGarbage
+ - type: TrashOnSolutionEmpty
+ solution: drink
+ - type: Tag
+ tags:
+ - Trash
###
# TODO: MOVE
# When adding new drinks also add to random spawner located in Resources\Prototypes\Entities\Markers\Spawners\Random\Food_Drinks\drinks_bottles.yml
- type: entity
abstract: true
- parent: [ DrinkBase, BaseDrinkOpenable ]
- id: DrinkBottlePlasticBaseFull
+ parent: [ DrinkPlasticBase, BaseDrinkOpenable ]
+ id: DrinkBottlePlasticBaseFull # Large plastic
suffix: Full
components:
- type: Tag
sprite: Objects/Consumable/Drinks/generic_jug.rsi # fallback to generic plastic jug
- type: Item
size: Normal
- - type: Damageable
- damageContainer: Inorganic
- - type: Destructible
- thresholds:
- - trigger:
- !type:DamageTrigger
- damage: 5
- behaviors:
- - !type:SpillBehavior { }
- - !type:DoActsBehavior
- acts: [ "Destruction" ]
- - type: TrashOnSolutionEmpty
- solution: drink
- - type: PhysicalComposition
- materialComposition:
- Plastic: 100
- type: entity
abstract: true
- parent: [ DrinkBase, BaseDrinkOpenable ]
- id: DrinkBottlePlasticSmallBaseFull
- suffix: Full
+ parent: DrinkBottlePlasticBaseFull
+ id: DrinkBottlePlasticSmallBaseFull # small plastic
components:
- type: Item
size: Small
maxVol: 30
- type: FitsInDispenser
solution: drink
- - type: Openable
- sound:
- collection: bottleOpenSounds
- closeable: true
- closeSound:
- collection: bottleCloseSounds
- type: Sprite
state: icon
- sprite: Objects/Consumable/Drinks/waterbottle.rsi
- - type: Damageable
- damageContainer: Inorganic
- - type: Destructible
- thresholds:
- - trigger:
- !type:DamageTrigger
- damage: 5
- behaviors:
- - !type:DoActsBehavior
- acts: [ "Destruction" ]
- - !type:SpillBehavior { }
+ sprite: Objects/Consumable/Drinks/waterbottle.rsi # fallback
- type: TrashOnSolutionEmpty
solution: drink
- - type: PhysicalComposition
- materialComposition:
- Plastic: 100
- type: entity
abstract: true
- parent: DrinkBottlePlasticSmallBaseFull
- id: DrinkBottleGlassSmallBaseFull
+ parent: [ DrinkGlassBase, BaseDrinkOpenable ]
+ id: DrinkBottleGlassSmallBaseFull # small glass
+ suffix: Full
components:
+ - type: Openable
+ sound:
+ collection: bottleOpenSounds
+ closeable: true
+ closeSound:
+ collection: bottleCloseSounds
- type: SolutionContainerManager
solutions:
drink:
maxVol: 50
- type: Sprite
- sprite: Objects/Consumable/Drinks/beer.rsi
- - type: DamageOnLand
- damage:
- types:
- Blunt: 5
- - type: DamageOtherOnHit
- damage:
- types:
- Blunt: 4
- - type: Destructible
- thresholds:
- - trigger:
- !type:DamageTrigger
- damage: 5
- behaviors:
- - !type:PlaySoundBehavior
- sound:
- collection: GlassBreak
- - !type:SpillBehavior { }
- - !type:SpawnEntitiesBehavior
- spawn:
- BrokenBottle:
- min: 1
- max: 1
- - !type:DoActsBehavior
- acts: [ "Destruction" ]
+ sprite: Objects/Consumable/Drinks/beer.rsi # fallback
- type: Tool
qualities:
- Rolling
- speedModifier: 0.75
- - type: PhysicalComposition
- materialComposition:
- Glass: 100
+ speedModifier: 0.75 # not as good as a rolling pin but does the job
+ - type: TrashOnSolutionEmpty
+ solution: drink
+ - type: Tag
+ tags:
+ - DrinkBottle
- type: entity
abstract: true
- parent: DrinkBottlePlasticBaseFull
- id: DrinkBottleGlassBaseFull
+ parent: DrinkBottleGlassSmallBaseFull
+ id: DrinkBottleGlassBaseFull # large glass
components:
+ - type: SolutionContainerManager
+ solutions:
+ drink:
+ maxVol: 100
- type: Sprite
- state: icon
- - 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
- - !type:DoActsBehavior
- acts: [ "Destruction" ]
- - type: Tool
- qualities:
- - Rolling
- speedModifier: 0.75 # not as good as a rolling pin but does the job
- - type: PhysicalComposition
- materialComposition:
- Glass: 100
+ sprite: Objects/Consumable/Drinks/alco-bottle.rsi # fallback
+ - type: Item
+ size: Normal
- type: entity
abstract: true
currentLabel: reagent-name-absinthe
- type: Sprite
sprite: Objects/Consumable/Drinks/absinthebottle.rsi
- - type: Sealable
- type: entity
parent: [DrinkBottleVisualsAll, DrinkBottleGlassBaseFull]
currentLabel: reagent-name-nothing
- type: Sprite
sprite: Objects/Consumable/Drinks/bottleofnothing.rsi
- - type: Sealable
- type: entity
parent: [DrinkBottleVisualsOpenable, DrinkBottleGlassBaseFull]
sprite: Objects/Consumable/Drinks/champagnebottle.rsi
- type: Openable
closeable: false # Champagne corks are fat. Not worth the effort.
+ - type: Sealable
+ examineTextUnsealed: drink-component-on-examine-is-unsealed-no-cork # tell the player why it can't close
- type: entity
parent: [DrinkBottleVisualsAll, DrinkBottleGlassBaseFull]
currentLabel: reagent-name-cognac
- type: Sprite
sprite: Objects/Consumable/Drinks/cognacbottle.rsi
- - type: Sealable
- type: entity
parent: [DrinkBottleVisualsAll, DrinkBottleGlassBaseFull]
currentLabel: reagent-name-gin
- type: Sprite
sprite: Objects/Consumable/Drinks/ginbottle.rsi
- - type: Sealable
- type: entity
parent: [DrinkBottleVisualsAll, DrinkBottleGlassBaseFull]
currentLabel: reagent-name-gildlager
- type: Sprite
sprite: Objects/Consumable/Drinks/gildlagerbottle.rsi
- - type: Sealable
- type: entity
parent: [DrinkBottleVisualsOpenable, DrinkBottleGlassBaseFull]
currentLabel: reagent-name-coffeeliqueur
- type: Sprite
sprite: Objects/Consumable/Drinks/coffeeliqueurbottle.rsi
- - type: Sealable
- type: entity
parent: [DrinkBottleVisualsAll, DrinkBottleGlassBaseFull]
Quantity: 100
- type: Sprite
sprite: Objects/Consumable/Drinks/pwinebottle.rsi
- - type: Sealable
- type: Tag
tags:
- Wine
currentLabel: reagent-name-rum
- type: Sprite
sprite: Objects/Consumable/Drinks/rumbottle.rsi
- - type: Sealable
- type: entity
parent: [DrinkBottleVisualsAll, DrinkBottleGlassBaseFull]