From 7f96244ec54e5e3757361310e1b81d5bf0722fa6 Mon Sep 17 00:00:00 2001 From: iaada Date: Thu, 24 Jul 2025 22:05:25 -0500 Subject: [PATCH 01/41] drink cans --- .../Objects/Consumable/Drinks/drinks_cans.yml | 54 +----- .../Consumable/Drinks/drinks_cans_empty.yml | 179 ++++++++++++++++++ 2 files changed, 187 insertions(+), 46 deletions(-) create mode 100644 Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans_empty.yml diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml index d933cbcd1b..46425f9afa 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml @@ -1,8 +1,8 @@ # 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: DrinkCanBaseFull - abstract: true components: - type: Drink - type: Openable @@ -76,6 +76,8 @@ - DrinkCan - type: DnaSubstanceTrace +## + - type: entity parent: DrinkCanBaseFull id: DrinkColaCan @@ -99,43 +101,11 @@ tags: - Cola - DrinkCan - - Recyclable - type: Sprite sprite: Objects/Consumable/Drinks/cola.rsi - type: Item sprite: Objects/Consumable/Drinks/cola.rsi -# created when taking apart an ied -- type: entity - parent: DrinkColaCan - id: DrinkColaCanEmpty - suffix: empty - components: - - type: SolutionContainerManager - solutions: - drink: - maxVol: 30 - grindable: - reagents: - - ReagentId: Aluminium - Quantity: 4 - - ReagentId: Iron - Quantity: 1 - - type: Openable - opened: true - - type: Sprite - sprite: Objects/Consumable/Drinks/cola.rsi - layers: - - state: icon_open - - type: Item - sprite: Objects/Consumable/Drinks/cola.rsi - - type: Tag - tags: - - Cola - - DrinkCan - - Recyclable - - Trash - - type: entity parent: DrinkCanBaseFull id: DrinkIcedTeaCan @@ -291,6 +261,7 @@ - type: Tag tags: - Beer + - DrinkCan - type: entity parent: DrinkCanBaseFull @@ -311,9 +282,10 @@ Quantity: 4 - ReagentId: Iron Quantity: 1 - - type: Drink - type: Sprite sprite: Objects/Consumable/Drinks/sodawater.rsi + - type: Item + sprite: Objects/Consumable/Drinks/sodawater.rsi - type: entity parent: DrinkCanBaseFull @@ -430,9 +402,10 @@ Quantity: 4 - ReagentId: Iron Quantity: 1 - - type: Drink - type: Sprite sprite: Objects/Consumable/Drinks/tonic.rsi + - type: Item + sprite: Objects/Consumable/Drinks/tonic.rsi - type: entity parent: DrinkCanBaseFull @@ -477,7 +450,6 @@ Quantity: 4 - ReagentId: Iron Quantity: 1 - - type: Drink - type: Sprite sprite: Objects/Consumable/Drinks/changelingsting.rsi - type: Item @@ -502,7 +474,6 @@ Quantity: 4 - ReagentId: Iron Quantity: 1 - - type: Drink - type: Sprite sprite: Objects/Consumable/Drinks/dr_gibb.rsi - type: Item @@ -531,10 +502,6 @@ Quantity: 4 - ReagentId: Iron Quantity: 1 - - type: Tag - tags: - - DrinkCan - - Recyclable - type: Sprite sprite: Objects/Consumable/Drinks/robustnukie.rsi - type: Item @@ -559,7 +526,6 @@ Quantity: 4 - ReagentId: Iron Quantity: 1 - - type: Drink - type: Sprite sprite: Objects/Consumable/Drinks/energy_drink.rsi - type: Item @@ -637,7 +603,6 @@ Quantity: 4 - ReagentId: Iron Quantity: 1 - - type: Drink - type: Sprite sprite: Objects/Consumable/Drinks/shamblersjuice.rsi - type: Item @@ -662,7 +627,6 @@ Quantity: 4 - ReagentId: Iron Quantity: 1 - - type: Drink - type: Sprite sprite: Objects/Consumable/Drinks/pwrgame.rsi - type: Item @@ -687,7 +651,6 @@ Quantity: 4 - ReagentId: Iron Quantity: 1 - - type: Drink - type: Sprite sprite: Objects/Consumable/Drinks/beer_can.rsi - type: Item @@ -715,7 +678,6 @@ Quantity: 4 - ReagentId: Iron Quantity: 1 - - type: Drink - type: Sprite sprite: Objects/Consumable/Drinks/wine_can.rsi - type: Item diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans_empty.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans_empty.yml new file mode 100644 index 0000000000..69876527d4 --- /dev/null +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans_empty.yml @@ -0,0 +1,179 @@ +# 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 + id: DrinkCanBaseEmpty + suffix: empty + components: + - type: Sprite + layers: + - state: icon_open + - type: SolutionContainerManager + solutions: + drink: + maxVol: 30 + grindable: + reagents: + - ReagentId: Aluminium + Quantity: 4 + - ReagentId: Iron + Quantity: 1 + - type: Openable + opened: true + - type: Tag + tags: + - DrinkCan + - Trash + +## + +# created when taking apart an ied +- type: entity + parent: [ DrinkCanBaseEmpty, DrinkColaCan ] + id: DrinkColaCanEmpty + name: Space Cola can + description: A sweet, carbonated soft drink. + components: + - type: Tag + tags: + - DrinkCan + - Trash + - Cola + +- type: entity + parent: [ DrinkCanBaseEmpty, DrinkIcedTeaCan ] + id: DrinkIcedTeaCanEmpty + name: iced tea can + description: A refreshing can of iced tea. + +- type: entity + parent: [ DrinkCanBaseEmpty, DrinkLemonLimeCan ] + id: DrinkLemonLimeCanEmpty + name: Smite can + description: You wanted ORANGE. It gave you Lemon-Lime. + +- type: entity + parent: [ DrinkCanBaseEmpty, DrinkLemonLimeCranberryCan ] + id: DrinkLemonLimeCranberryCanEmpty + name: Smite Cranberry can + description: Y'all want a Smite Cranberry? Beloved by administrators everywhere. Drink in moderation. A limited run for the holidays! + +- type: entity + parent: [ DrinkCanBaseEmpty, DrinkGrapeCan ] + id: DrinkGrapeCanEmpty + name: grape soda can + 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. + components: + - type: Tag + tags: + - DrinkCan + - Trash + - Beer + +- type: entity + parent: [ DrinkCanBaseEmpty, DrinkSodaWaterCan ] + id: DrinkSodaWaterCanEmpty + name: soda water can + description: Soda water. Why not make a scotch and soda? + +- type: entity + parent: [ DrinkCanBaseEmpty, DrinkSpaceMountainWindCan ] + id: DrinkSpaceMountainWindCanEmpty + name: Space Solar Wind can + description: Blows right through you like a solar wind. + +- type: entity + parent: [ DrinkCanBaseEmpty, DrinkSpaceUpCan ] + id: DrinkSpaceUpCanEmpty + name: Space-Up can + description: Tastes like a hull breach in your mouth. + +- type: entity + parent: [ DrinkCanBaseEmpty, DrinkSolDryCan ] + id: DrinkSolDryCanEmpty + name: Sol Dry can + description: Sweet ginger soda from outer space! + +- type: entity + parent: [ DrinkCanBaseEmpty, DrinkStarkistCan ] + id: DrinkStarkistCanEmpty + name: Starkist can + description: The taste of a star in liquid form. And, a bit of tuna...? + +- type: entity + parent: [ DrinkCanBaseEmpty, DrinkTonicWaterCan ] + id: DrinkTonicWaterCanEmpty + name: tonic water can + description: Quinine tastes funny, but at least it'll keep that Space Malaria away. + +- type: entity + parent: [ DrinkCanBaseEmpty, DrinkFourteenLokoCan ] + id: DrinkFourteenLokoCanEmpty + name: Fourteen Loko can + description: The MBO has advised crew members that consumption of Fourteen Loko may result in seizures, blindness, drunkeness, or even death. Please Drink Responsibly. + +- type: entity + parent: [ DrinkCanBaseEmpty, DrinkChangelingStingCan ] + id: DrinkChangelingStingCanEmpty + name: Changeling Sting can + description: You take a tiny sip and feel a burning sensation... + +- type: entity + parent: [ DrinkCanBaseEmpty, DrinkDrGibbCan ] + id: DrinkDrGibbCanEmpty + name: Dr. Gibb can + description: A delicious blend of 42 different flavours. + +- type: entity + parent: [ DrinkCanBaseEmpty, DrinkNukieCan ] + id: DrinkNukieCanEmpty + name: Blood-red Brew can + description: A home-brewed drink made from the crazed minds at the Syndicate. Not recommended by doctors. + +- type: entity + parent: [ DrinkCanBaseEmpty, DrinkEnergyDrinkCan ] + id: DrinkEnergyDrinkCanEmpty + name: Red Bool can + description: A can of Red Bool, with enough caffeine to kill a horse. + +- type: entity + parent: [ DrinkCanBaseEmpty, DrinkShamblersJuiceCan ] + id: DrinkShamblersJuiceCanEmpty + name: Shambler's Juice can + description: ~Shake me up some of that Shambler's Juice!~ + +- type: entity + parent: [ DrinkCanBaseEmpty, DrinkPwrGameCan ] + id: DrinkPwrGameCanEmpty + name: PWR Game can + description: The only drink with the PWR that true gamers crave. When a gamer talks about gamerfuel, this is what they're literally referring to. + +- type: entity + parent: [ DrinkCanBaseEmpty, DrinkBeerCan ] + id: DrinkBeerCanEmpty + name: beer can + description: Small joy, big taste, no worries! + components: + - type: Tag + tags: + - DrinkCan + - Trash + - Beer + +- type: entity + parent: [ DrinkCanBaseEmpty, DrinkWineCan ] + id: DrinkWineCanEmpty + name: wine can + description: Your way to forgetting all worries and having fun! + components: + - type: Tag + tags: + - DrinkCan + - Trash + - Wine From 94f089a1c6a2bca9cd27e231f1eb6c9eaf87226f Mon Sep 17 00:00:00 2001 From: iaada Date: Fri, 25 Jul 2025 00:05:30 -0500 Subject: [PATCH 02/41] cups and metamorphic --- .../Objects/Consumable/Drinks/base_drinks.yml | 186 +++++++++++++++++ .../Consumable/Drinks/drinks_cans_empty.yml | 8 +- .../Objects/Consumable/Drinks/drinks_cups.yml | 94 ++++----- .../{drinks.yml => drinks_metamorphic.yml} | 191 +----------------- 4 files changed, 244 insertions(+), 235 deletions(-) create mode 100644 Resources/Prototypes/Entities/Objects/Consumable/Drinks/base_drinks.yml rename Resources/Prototypes/Entities/Objects/Consumable/Drinks/{drinks.yml => drinks_metamorphic.yml} (92%) diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/base_drinks.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/base_drinks.yml new file mode 100644 index 0000000000..c81209719d --- /dev/null +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/base_drinks.yml @@ -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 diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans_empty.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans_empty.yml index 69876527d4..a10616aecb 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans_empty.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans_empty.yml @@ -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: diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml index 842cf13641..9ccadd77f7 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml @@ -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 diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_metamorphic.yml similarity index 92% rename from Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks.yml rename to Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_metamorphic.yml index aff0aa7a05..a5463757e6 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_metamorphic.yml @@ -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 From 9f9b439688d886842e7ada2db969b662bcff8a9f Mon Sep 17 00:00:00 2001 From: iaada Date: Fri, 25 Jul 2025 01:36:27 -0500 Subject: [PATCH 03/41] drinks_special part 1 --- .../Consumable/Drinks/drinks_metamorphic.yml | 34 +++++++++- .../Consumable/Drinks/drinks_special.yml | 63 ++----------------- 2 files changed, 36 insertions(+), 61 deletions(-) diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_metamorphic.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_metamorphic.yml index a5463757e6..8065c4164a 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_metamorphic.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_metamorphic.yml @@ -1,4 +1,4 @@ -# File for the metamorphic glass and pre-filled metamorph glass +# File for the metamorphic glass and pre-filled drinks # 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 @@ -33,7 +33,37 @@ state: icon - type: TransformableContainer -# Reagent fills +- type: entity + parent: DrinkGlassBase + id: DrinkJar + name: jar + description: The hipster's cup. + components: + - type: Sprite + sprite: Objects/Consumable/Drinks/jar.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: 50 + - type: SolutionContainerVisuals + maxFillLevels: 9 + fillBaseName: fill + metamorphic: true + metamorphicDefaultSprite: + sprite: Objects/Consumable/Drinks/jar.rsi + state: icon + - type: TransformableContainer + +## Reagent filled - type: entity parent: DrinkGlass diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml index 02a4346ebc..cb958d6776 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml @@ -1,5 +1,5 @@ - type: entity - parent: BaseItem + parent: DrinkBase id: DrinkShaker name: shaker description: The trusty mixing buddy of the bartender. @@ -8,35 +8,17 @@ solutions: drink: maxVol: 100 - - type: MixableSolution - solution: drink - - type: Drink - - type: Shakeable - type: FitsInDispenser solution: drink - - type: DrawableSolution - solution: drink - - type: RefillableSolution - solution: drink - - type: DrainableSolution - solution: drink - - type: SolutionTransfer - canChangeTransferAmount: true - - type: Spillable - solution: drink - type: Sprite sprite: Objects/Consumable/Drinks/shaker.rsi state: icon - type: Item sprite: Objects/Consumable/Drinks/shaker.rsi - - type: UserInterface - interfaces: - enum.TransferAmountUiKey.Key: - type: TransferAmountBoundUserInterface - type: PhysicalComposition materialComposition: Steel: 50 - - type: DnaSubstanceTrace + - type: Shakeable - type: ReactionMixer mixOnInteract: false reactionTypes: @@ -52,10 +34,6 @@ solutions: drink: maxVol: 5 - - type: SolutionTransfer - transferAmount: 10 - minTransferAmount: 10 - - type: Drink - type: Sprite sprite: Objects/Consumable/Drinks/shotglass.rsi layers: @@ -73,37 +51,6 @@ inHandsMaxFillLevels: 1 inHandsFillBaseName: -fill- -- type: entity - parent: DrinkGlassBase - id: DrinkJar - name: jar - description: The hipster's cup. - components: - - type: Drink - - type: Sprite - sprite: Objects/Consumable/Drinks/jar.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: 50 - - type: SolutionContainerVisuals - maxFillLevels: 9 - fillBaseName: fill - metamorphic: true - metamorphicDefaultSprite: - sprite: Objects/Consumable/Drinks/jar.rsi - state: icon - - type: TransformableContainer - - type: entity parent: DrinkGlassBase id: DrinkJarWhat @@ -135,7 +82,7 @@ type: TransferAmountBoundUserInterface - type: entity - parent: [BaseItem, BartenderMixer] + parent: BaseDrink id: DrinkJigger name: jigger description: Like a shaker, but smaller. Used to control the amount of ingredients. @@ -148,8 +95,6 @@ canChangeTransferAmount: true minTransferAmount: 1 maxTransferAmount: 20 - - type: MixableSolution - solution: drink - type: FitsInDispenser solution: drink - type: Sprite @@ -160,7 +105,7 @@ Steel: 20 - type: entity - parent: [BaseItem, BartenderMixer] + parent: BaseDrink id: DrinkIceBucket name: ice bucket description: A special bucket of refreshy ice. Prohibited use for challenge with the same name! From fe8c3d2e0b25e87f8cf25892b7398f9d4ab33ae7 Mon Sep 17 00:00:00 2001 From: iaada Date: Fri, 25 Jul 2025 03:03:32 -0500 Subject: [PATCH 04/41] fix the base types --- .../nutrition/components/drink-component.ftl | 1 + .../Objects/Consumable/Drinks/base_drinks.yml | 23 ++++ .../Consumable/Drinks/drinks-cartons.yml | 22 +-- .../Consumable/Drinks/drinks_bottles.yml | 24 ++-- .../Objects/Consumable/Drinks/drinks_cans.yml | 28 +--- .../Consumable/Drinks/drinks_cans_empty.yml | 4 +- .../Objects/Consumable/Drinks/drinks_cups.yml | 27 +--- .../Consumable/Drinks/drinks_metamorphic.yml | 2 +- .../Consumable/Drinks/drinks_special.yml | 24 +--- .../Consumable/Drinks/trash_drinks.yml | 128 ++---------------- 10 files changed, 59 insertions(+), 224 deletions(-) diff --git a/Resources/Locale/en-US/nutrition/components/drink-component.ftl b/Resources/Locale/en-US/nutrition/components/drink-component.ftl index e80787c8d5..5692f7b0e6 100644 --- a/Resources/Locale/en-US/nutrition/components/drink-component.ftl +++ b/Resources/Locale/en-US/nutrition/components/drink-component.ftl @@ -3,6 +3,7 @@ drink-component-on-examine-is-empty = [color=gray]Empty[/color] 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 diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/base_drinks.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/base_drinks.yml index c81209719d..96f69f3101 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/base_drinks.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/base_drinks.yml @@ -85,6 +85,29 @@ 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 ### diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks-cartons.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks-cartons.yml index c33e24ad3e..70a86e6d98 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks-cartons.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks-cartons.yml @@ -1,7 +1,7 @@ - type: entity - parent: DrinkBase - id: DrinkCartonBaseFull abstract: true + parent: [ DrinkBase, BaseDrinkOpenable ] + id: DrinkCartonBaseFull suffix: Full components: - type: Openable @@ -10,14 +10,10 @@ 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 @@ -42,12 +38,14 @@ #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: @@ -57,8 +55,8 @@ size: Normal - type: entity - id: DrinkCartonVisualsOpenable abstract: true + id: DrinkCartonVisualsOpenable components: - type: Appearance - type: GenericVisualizer @@ -72,6 +70,8 @@ - state: icon map: ["enum.OpenableVisuals.Layer"] +## + - type: entity parent: [DrinkCartonVisualsOpenable, DrinkCartonBaseFull] id: DrinkJuiceLimeCarton @@ -194,7 +194,7 @@ Quantity: 100 - type: Sprite sprite: Objects/Consumable/Drinks/oatmilk.rsi - + - type: entity parent: [DrinkCartonVisualsOpenable, DrinkCartonBaseFull] id: DrinkJuiceLemonCarton @@ -209,7 +209,7 @@ Quantity: 50 - type: Sprite sprite: Objects/Consumable/Drinks/lemonjuice.rsi - + - type: entity parent: [DrinkCartonVisualsOpenable, DrinkCartonBaseFull] id: DrinkJuicePineappleCarton diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles.yml index c2ac4c606f..06f4daf9d1 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles.yml @@ -1,8 +1,8 @@ # 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 @@ -39,15 +39,11 @@ - 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 @@ -81,20 +77,16 @@ - !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: @@ -136,9 +128,9 @@ Glass: 100 - type: entity + abstract: true parent: DrinkBottlePlasticBaseFull id: DrinkBottleGlassBaseFull - abstract: true components: - type: Sprite state: icon @@ -178,8 +170,8 @@ Glass: 100 - type: entity - id: DrinkBottleVisualsOpenable abstract: true + id: DrinkBottleVisualsOpenable components: - type: Appearance - type: GenericVisualizer @@ -194,8 +186,8 @@ map: ["enum.OpenableVisuals.Layer"] - type: entity - id: DrinkBottleVisualsAll abstract: true + id: DrinkBottleVisualsAll components: - type: Appearance - type: GenericVisualizer diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml index 46425f9afa..94868a0ffd 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml @@ -1,12 +1,9 @@ # 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: @@ -20,17 +17,11 @@ 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: @@ -38,14 +29,6 @@ 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: @@ -53,14 +36,6 @@ 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 @@ -74,7 +49,6 @@ - type: Tag tags: - DrinkCan - - type: DnaSubstanceTrace ## diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans_empty.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans_empty.yml index a10616aecb..e4db6f4365 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans_empty.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans_empty.yml @@ -1,7 +1,7 @@ # 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: @@ -18,8 +18,6 @@ Quantity: 4 - ReagentId: Iron Quantity: 1 - - type: Openable - opened: true - type: Tag tags: - DrinkCan diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml index 9ccadd77f7..844cb9fb62 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml @@ -2,7 +2,7 @@ # 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: @@ -10,35 +10,13 @@ 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 @@ -213,7 +191,8 @@ - type: Sprite sprite: Objects/Consumable/Drinks/mug_red.rsi -# Filled +## Filled + - type: entity parent: DrinkBaseCup id: DrinkHotCoco diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_metamorphic.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_metamorphic.yml index 8065c4164a..6912b2cfa2 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_metamorphic.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_metamorphic.yml @@ -63,7 +63,7 @@ state: icon - type: TransformableContainer -## Reagent filled +## Filled - type: entity parent: DrinkGlass diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml index cb958d6776..f6fb5ab8ec 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml @@ -62,27 +62,7 @@ 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. @@ -105,7 +85,7 @@ 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! diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/trash_drinks.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/trash_drinks.yml index eadeeabd74..a1e95ad845 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/trash_drinks.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/trash_drinks.yml @@ -1,88 +1,19 @@ # 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 @@ -92,63 +23,20 @@ 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 From 47460e0e4ace22f49b637933533065371d03f24f Mon Sep 17 00:00:00 2001 From: iaada Date: Fri, 25 Jul 2025 15:01:05 -0500 Subject: [PATCH 05/41] bottles --- .../nutrition/components/drink-component.ftl | 2 +- .../Objects/Consumable/Drinks/base_drinks.yml | 40 ++++- .../Consumable/Drinks/drinks_bottles.yml | 163 ++++-------------- .../Objects/Consumable/Drinks/drinks_cans.yml | 2 +- 4 files changed, 77 insertions(+), 130 deletions(-) diff --git a/Resources/Locale/en-US/nutrition/components/drink-component.ftl b/Resources/Locale/en-US/nutrition/components/drink-component.ftl index 5692f7b0e6..5fa449396c 100644 --- a/Resources/Locale/en-US/nutrition/components/drink-component.ftl +++ b/Resources/Locale/en-US/nutrition/components/drink-component.ftl @@ -3,7 +3,7 @@ drink-component-on-examine-is-empty = [color=gray]Empty[/color] 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-unsealed-no-cork = The seal is broken, and the cork is gone. 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 diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/base_drinks.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/base_drinks.yml index 96f69f3101..bac4db0d57 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/base_drinks.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/base_drinks.yml @@ -1,7 +1,7 @@ # 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 @@ -85,6 +85,27 @@ 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 @@ -102,13 +123,26 @@ 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 diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles.yml index 06f4daf9d1..8b4bfc137b 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles.yml @@ -1,8 +1,8 @@ # 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 @@ -23,28 +23,11 @@ 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 @@ -57,117 +40,53 @@ maxVol: 30 - type: FitsInDispenser solution: drink + - type: Sprite + state: icon + sprite: Objects/Consumable/Drinks/waterbottle.rsi # fallback + - type: TrashOnSolutionEmpty + solution: drink + +- type: entity + abstract: true + parent: [ DrinkGlassBase, BaseDrinkOpenable ] + id: DrinkBottleGlassSmallBaseFull # small glass + suffix: Full + components: - 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 { } - - type: TrashOnSolutionEmpty - solution: drink - - type: PhysicalComposition - materialComposition: - Plastic: 100 - -- type: entity - abstract: true - parent: DrinkBottlePlasticSmallBaseFull - id: DrinkBottleGlassSmallBaseFull - components: - 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" ] - - type: Tool - qualities: - - Rolling - speedModifier: 0.75 - - type: PhysicalComposition - materialComposition: - Glass: 100 - -- type: entity - abstract: true - parent: DrinkBottlePlasticBaseFull - id: DrinkBottleGlassBaseFull - components: - - 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" ] + sprite: Objects/Consumable/Drinks/beer.rsi # fallback - type: Tool qualities: - Rolling speedModifier: 0.75 # not as good as a rolling pin but does the job - - type: PhysicalComposition - materialComposition: - Glass: 100 + - type: TrashOnSolutionEmpty + solution: drink + - type: Tag + tags: + - DrinkBottle + +- type: entity + abstract: true + parent: DrinkBottleGlassSmallBaseFull + id: DrinkBottleGlassBaseFull # large glass + components: + - type: SolutionContainerManager + solutions: + drink: + maxVol: 100 + - type: Sprite + sprite: Objects/Consumable/Drinks/alco-bottle.rsi # fallback + - type: Item + size: Normal - type: entity abstract: true @@ -228,7 +147,6 @@ currentLabel: reagent-name-absinthe - type: Sprite sprite: Objects/Consumable/Drinks/absinthebottle.rsi - - type: Sealable - type: entity parent: [DrinkBottleVisualsAll, DrinkBottleGlassBaseFull] @@ -272,7 +190,6 @@ currentLabel: reagent-name-nothing - type: Sprite sprite: Objects/Consumable/Drinks/bottleofnothing.rsi - - type: Sealable - type: entity parent: [DrinkBottleVisualsOpenable, DrinkBottleGlassBaseFull] @@ -292,6 +209,8 @@ 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] @@ -309,7 +228,6 @@ currentLabel: reagent-name-cognac - type: Sprite sprite: Objects/Consumable/Drinks/cognacbottle.rsi - - type: Sealable - type: entity parent: [DrinkBottleVisualsAll, DrinkBottleGlassBaseFull] @@ -346,7 +264,6 @@ currentLabel: reagent-name-gin - type: Sprite sprite: Objects/Consumable/Drinks/ginbottle.rsi - - type: Sealable - type: entity parent: [DrinkBottleVisualsAll, DrinkBottleGlassBaseFull] @@ -364,7 +281,6 @@ currentLabel: reagent-name-gildlager - type: Sprite sprite: Objects/Consumable/Drinks/gildlagerbottle.rsi - - type: Sealable - type: entity parent: [DrinkBottleVisualsOpenable, DrinkBottleGlassBaseFull] @@ -382,7 +298,6 @@ currentLabel: reagent-name-coffeeliqueur - type: Sprite sprite: Objects/Consumable/Drinks/coffeeliqueurbottle.rsi - - type: Sealable - type: entity parent: [DrinkBottleVisualsAll, DrinkBottleGlassBaseFull] @@ -441,7 +356,6 @@ Quantity: 100 - type: Sprite sprite: Objects/Consumable/Drinks/pwinebottle.rsi - - type: Sealable - type: Tag tags: - Wine @@ -463,7 +377,6 @@ currentLabel: reagent-name-rum - type: Sprite sprite: Objects/Consumable/Drinks/rumbottle.rsi - - type: Sealable - type: entity parent: [DrinkBottleVisualsAll, DrinkBottleGlassBaseFull] diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml index 94868a0ffd..53ab1c6fee 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml @@ -50,7 +50,7 @@ tags: - DrinkCan -## +## Filled - type: entity parent: DrinkCanBaseFull From eb8599d204d51527539e1dde4898960b4080d341 Mon Sep 17 00:00:00 2001 From: iaada Date: Fri, 25 Jul 2025 15:01:34 -0500 Subject: [PATCH 06/41] trash drinks gets trashed (fixed) --- .../Consumable/Drinks/trash_drinks.yml | 237 +++++------------- .../ntcahors.rsi/icon_open.png} | Bin .../Consumable/Drinks/ntcahors.rsi/meta.json | 3 + .../absinthebottle_empty.rsi/icon.png | Bin 453 -> 0 bytes .../absinthebottle_empty.rsi/meta.json | 1 - .../TrashDrinks/alco-clear.rsi/icon.png | Bin 222 -> 0 bytes .../TrashDrinks/alco-clear.rsi/meta.json | 1 - .../TrashDrinks/alebottle_empty.rsi/icon.png | Bin 473 -> 0 bytes .../TrashDrinks/alebottle_empty.rsi/meta.json | 1 - .../TrashDrinks/beer_empty.rsi/icon.png | Bin 522 -> 0 bytes .../TrashDrinks/beer_empty.rsi/meta.json | 1 - .../TrashDrinks/broken_bottle.rsi/icon.png | Bin 656 -> 0 bytes .../TrashDrinks/broken_bottle.rsi/meta.json | 1 - .../coffeeliqueurbottle_empty.rsi/icon.png | Bin 497 -> 0 bytes .../coffeeliqueurbottle_empty.rsi/meta.json | 1 - .../cognacbottle_empty.rsi/icon.png | Bin 536 -> 0 bytes .../cognacbottle_empty.rsi/meta.json | 1 - .../gildlagerbottle_empty.rsi/icon.png | Bin 483 -> 0 bytes .../gildlagerbottle_empty.rsi/meta.json | 1 - .../TrashDrinks/ginbottle_empty.rsi/icon.png | Bin 617 -> 0 bytes .../TrashDrinks/ginbottle_empty.rsi/meta.json | 1 - .../TrashDrinks/glass_empty.rsi/icon.png | Bin 209 -> 0 bytes .../TrashDrinks/glass_empty.rsi/meta.json | 1 - .../TrashDrinks/ntcahors_empty.rsi/meta.json | 1 - .../patronbottle_empty.rsi/icon.png | Bin 475 -> 0 bytes .../patronbottle_empty.rsi/meta.json | 1 - .../pwinebottle_empty.rsi/icon.png | Bin 433 -> 0 bytes .../pwinebottle_empty.rsi/meta.json | 1 - .../TrashDrinks/rumbottle_empty.rsi/icon.png | Bin 471 -> 0 bytes .../TrashDrinks/rumbottle_empty.rsi/meta.json | 1 - .../tequillabottle_empty.rsi/icon.png | Bin 603 -> 0 bytes .../tequillabottle_empty.rsi/meta.json | 1 - .../vermouthbottle_empty.rsi/icon.png | Bin 544 -> 0 bytes .../vermouthbottle_empty.rsi/meta.json | 1 - .../vodkabottle_empty.rsi/icon.png | Bin 518 -> 0 bytes .../vodkabottle_empty.rsi/meta.json | 1 - .../whiskeybottle_empty.rsi/icon.png | Bin 534 -> 0 bytes .../whiskeybottle_empty.rsi/meta.json | 1 - .../TrashDrinks/winebottle_empty.rsi/icon.png | Bin 504 -> 0 bytes .../winebottle_empty.rsi/meta.json | 1 - 40 files changed, 68 insertions(+), 191 deletions(-) rename Resources/Textures/Objects/Consumable/{TrashDrinks/ntcahors_empty.rsi/icon.png => Drinks/ntcahors.rsi/icon_open.png} (100%) delete mode 100644 Resources/Textures/Objects/Consumable/TrashDrinks/absinthebottle_empty.rsi/icon.png delete mode 100644 Resources/Textures/Objects/Consumable/TrashDrinks/absinthebottle_empty.rsi/meta.json delete mode 100644 Resources/Textures/Objects/Consumable/TrashDrinks/alco-clear.rsi/icon.png delete mode 100644 Resources/Textures/Objects/Consumable/TrashDrinks/alco-clear.rsi/meta.json delete mode 100644 Resources/Textures/Objects/Consumable/TrashDrinks/alebottle_empty.rsi/icon.png delete mode 100644 Resources/Textures/Objects/Consumable/TrashDrinks/alebottle_empty.rsi/meta.json delete mode 100644 Resources/Textures/Objects/Consumable/TrashDrinks/beer_empty.rsi/icon.png delete mode 100644 Resources/Textures/Objects/Consumable/TrashDrinks/beer_empty.rsi/meta.json delete mode 100644 Resources/Textures/Objects/Consumable/TrashDrinks/broken_bottle.rsi/icon.png delete mode 100644 Resources/Textures/Objects/Consumable/TrashDrinks/broken_bottle.rsi/meta.json delete mode 100644 Resources/Textures/Objects/Consumable/TrashDrinks/coffeeliqueurbottle_empty.rsi/icon.png delete mode 100644 Resources/Textures/Objects/Consumable/TrashDrinks/coffeeliqueurbottle_empty.rsi/meta.json delete mode 100644 Resources/Textures/Objects/Consumable/TrashDrinks/cognacbottle_empty.rsi/icon.png delete mode 100644 Resources/Textures/Objects/Consumable/TrashDrinks/cognacbottle_empty.rsi/meta.json delete mode 100644 Resources/Textures/Objects/Consumable/TrashDrinks/gildlagerbottle_empty.rsi/icon.png delete mode 100644 Resources/Textures/Objects/Consumable/TrashDrinks/gildlagerbottle_empty.rsi/meta.json delete mode 100644 Resources/Textures/Objects/Consumable/TrashDrinks/ginbottle_empty.rsi/icon.png delete mode 100644 Resources/Textures/Objects/Consumable/TrashDrinks/ginbottle_empty.rsi/meta.json delete mode 100644 Resources/Textures/Objects/Consumable/TrashDrinks/glass_empty.rsi/icon.png delete mode 100644 Resources/Textures/Objects/Consumable/TrashDrinks/glass_empty.rsi/meta.json delete mode 100644 Resources/Textures/Objects/Consumable/TrashDrinks/ntcahors_empty.rsi/meta.json delete mode 100644 Resources/Textures/Objects/Consumable/TrashDrinks/patronbottle_empty.rsi/icon.png delete mode 100644 Resources/Textures/Objects/Consumable/TrashDrinks/patronbottle_empty.rsi/meta.json delete mode 100644 Resources/Textures/Objects/Consumable/TrashDrinks/pwinebottle_empty.rsi/icon.png delete mode 100644 Resources/Textures/Objects/Consumable/TrashDrinks/pwinebottle_empty.rsi/meta.json delete mode 100644 Resources/Textures/Objects/Consumable/TrashDrinks/rumbottle_empty.rsi/icon.png delete mode 100644 Resources/Textures/Objects/Consumable/TrashDrinks/rumbottle_empty.rsi/meta.json delete mode 100644 Resources/Textures/Objects/Consumable/TrashDrinks/tequillabottle_empty.rsi/icon.png delete mode 100644 Resources/Textures/Objects/Consumable/TrashDrinks/tequillabottle_empty.rsi/meta.json delete mode 100644 Resources/Textures/Objects/Consumable/TrashDrinks/vermouthbottle_empty.rsi/icon.png delete mode 100644 Resources/Textures/Objects/Consumable/TrashDrinks/vermouthbottle_empty.rsi/meta.json delete mode 100644 Resources/Textures/Objects/Consumable/TrashDrinks/vodkabottle_empty.rsi/icon.png delete mode 100644 Resources/Textures/Objects/Consumable/TrashDrinks/vodkabottle_empty.rsi/meta.json delete mode 100644 Resources/Textures/Objects/Consumable/TrashDrinks/whiskeybottle_empty.rsi/icon.png delete mode 100644 Resources/Textures/Objects/Consumable/TrashDrinks/whiskeybottle_empty.rsi/meta.json delete mode 100644 Resources/Textures/Objects/Consumable/TrashDrinks/winebottle_empty.rsi/icon.png delete mode 100644 Resources/Textures/Objects/Consumable/TrashDrinks/winebottle_empty.rsi/meta.json diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/trash_drinks.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/trash_drinks.yml index a1e95ad845..134a0c27d2 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/trash_drinks.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/trash_drinks.yml @@ -1,260 +1,153 @@ # These can still be used as containers - type: entity abstract: true - parent: [ BaseDrinkOpenableOpen, DrinkBottleGlassBaseFull ] + parent: [ BaseDrinkOpenableOpen, BaseDrinkEmptyTrash ] id: DrinkBottleBaseEmpty - suffix: Empty components: - - type: Tag - tags: - - Trash - - type: SpaceGarbage - -- type: entity - abstract: true - parent: DrinkBottleGlassSmallBaseFull - id: DrinkBottleBaseSmallEmpty - components: - - type: Item - size: Small - - type: SolutionContainerManager - solutions: - drink: - maxVol: 50 - -- type: entity - abstract: true - parent: [ BaseDrinkOpenableOpen, DrinkCartonBaseFull ] - id: DrinkCartonBaseEmpty - suffix: Empty - components: - - type: Tag - tags: - - Trash - - type: SpaceGarbage - -- type: entity - abstract: true - parent: DrinkCartonBaseEmpty - id: DrinkCartonBaseLargeEmpty - components: - - type: Item - size: Normal - type: SolutionContainerManager solutions: drink: maxVol: 100 + - type: Tag + tags: + - DrinkBottle + - Trash -# Containers - type: entity - name: Jailbreaker Verte bottle - parent: DrinkBottleBaseEmpty - id: DrinkBottleAbsinthe + abstract: true + parent: [ BaseDrinkOpenableOpen, BaseDrinkEmptyTrash ] + id: DrinkBottleBaseSmallEmpty components: - - type: Sprite - sprite: Objects/Consumable/TrashDrinks/absinthebottle_empty.rsi - + - type: SolutionContainerManager + solutions: + drink: + maxVol: 50 + - type: Tag + tags: + - DrinkBottle + - Trash - type: entity - name: alcohol bottle - parent: DrinkBottleBaseEmpty - id: DrinkBottleAlcoClear - components: - - type: Sprite - sprite: Objects/Consumable/TrashDrinks/alco-clear.rsi - + abstract: true + parent: [ BaseDrinkOpenableOpen, BaseDrinkEmptyTrash, DrinkCartonBaseFull ] + id: DrinkCartonBaseEmpty - type: entity - name: ale bottle - parent: DrinkBottleBaseSmallEmpty + abstract: true + parent: [ BaseDrinkOpenableOpen, BaseDrinkEmptyTrash, DrinkCartonBaseLargeFull ] + id: DrinkCartonBaseLargeEmpty + +# Small bottles + +- type: entity + parent: [ DrinkBottleBaseSmallEmpty, DrinkAleBottleFull ] id: DrinkBottleAle - components: - - type: Sprite - sprite: Objects/Consumable/TrashDrinks/alebottle_empty.rsi - - type: entity - name: beer bottle - parent: DrinkBottleBaseSmallEmpty + parent: [ DrinkBottleBaseSmallEmpty, DrinkBeerBottleFull ] id: DrinkBottleBeer components: - - type: Sprite - sprite: Objects/Consumable/TrashDrinks/beer_empty.rsi + - type: Tag + tags: + - Beer + - Trash +# Large bottles - type: entity - name: cognac bottle - parent: DrinkBottleBaseEmpty + parent: [ DrinkBottleBaseEmpty, DrinkAbsintheBottleFull ] + id: DrinkBottleAbsinthe + +- type: entity + parent: [DrinkBottleBaseEmpty, DrinkBlueCuracaoBottleFull] + id: DrinkBottleAlcoClear + +- type: entity + parent: [ DrinkBottleBaseEmpty, DrinkCognacBottleFull ] id: DrinkBottleCognac - components: - - type: Sprite - sprite: Objects/Consumable/TrashDrinks/cognacbottle_empty.rsi - - type: entity - name: Griffeater gin bottle - parent: DrinkBottleBaseEmpty + parent: [ DrinkBottleBaseEmpty, DrinkGinBottleFull ] id: DrinkBottleGin - components: - - type: Sprite - sprite: Objects/Consumable/TrashDrinks/ginbottle_empty.rsi - - type: entity - name: gildlager bottle - parent: DrinkBottleBaseEmpty + parent: [DrinkBottleBaseEmpty, DrinkGildlagerBottleFull] id: DrinkBottleGildlager - components: - - type: Sprite - sprite: Objects/Consumable/TrashDrinks/gildlagerbottle_empty.rsi - - type: entity name: coffee liqueur bottle - parent: DrinkBottleBaseEmpty + parent: [DrinkBottleBaseEmpty, DrinkCoffeeLiqueurBottleFull] id: DrinkBottleCoffeeLiqueur - components: - - type: Sprite - sprite: Objects/Consumable/TrashDrinks/coffeeliqueurbottle_empty.rsi - +# todo make a real cahors bottle - type: entity name: nt cahors bottle - parent: DrinkBottleBaseEmpty + parent: [DrinkBottleBaseEmpty, DrinkBottleGlassBaseFull] id: DrinkBottleNTCahors components: - type: Sprite - sprite: Objects/Consumable/TrashDrinks/ntcahors_empty.rsi - + sprite: Objects/Consumable/Drinks/ntcahors.rsi - type: entity - name: patron bottle - parent: DrinkBottleBaseEmpty + parent: [DrinkBottleBaseEmpty, DrinkPatronBottleFull] id: DrinkBottlePatron - components: - - type: Sprite - sprite: Objects/Consumable/TrashDrinks/patronbottle_empty.rsi - - type: entity - name: poison wine bottle - parent: DrinkBottleBaseEmpty + parent: [DrinkBottleBaseEmpty, DrinkPoisonWinebottleFull] id: DrinkBottlePoisonWine - components: - - type: Sprite - sprite: Objects/Consumable/TrashDrinks/pwinebottle_empty.rsi - - type: entity - name: rum bottle - parent: DrinkBottleBaseEmpty + parent: [DrinkBottleBaseEmpty, DrinkRumBottleFull] id: DrinkBottleRum - components: - - type: Sprite - sprite: Objects/Consumable/TrashDrinks/rumbottle_empty.rsi - - type: entity - name: tequila bottle - parent: DrinkBottleBaseEmpty + parent: [DrinkBottleBaseEmpty, DrinkTequilaBottleFull] id: DrinkBottleTequila - components: - - type: Sprite - sprite: Objects/Consumable/TrashDrinks/tequillabottle_empty.rsi - - type: entity - name: vermouth bottle - parent: DrinkBottleBaseEmpty + parent: [DrinkBottleBaseEmpty, DrinkVermouthBottleFull] id: DrinkBottleVermouth - components: - - type: Sprite - sprite: Objects/Consumable/TrashDrinks/vermouthbottle_empty.rsi - - type: entity - name: vodka bottle - parent: DrinkBottleBaseEmpty + parent: [DrinkBottleBaseEmpty, DrinkVodkaBottleFull] id: DrinkBottleVodka - components: - - type: Sprite - sprite: Objects/Consumable/TrashDrinks/vodkabottle_empty.rsi - - type: entity - name: whiskey bottle - parent: DrinkBottleBaseEmpty + parent: [DrinkBottleBaseEmpty, DrinkWhiskeyBottleFull] id: DrinkBottleWhiskey - components: - - type: Sprite - sprite: Objects/Consumable/TrashDrinks/whiskeybottle_empty.rsi - - type: entity - name: wine bottle - parent: DrinkBottleBaseEmpty + parent: [DrinkBottleBaseEmpty, DrinkWineBottleFull] id: DrinkBottleWine - components: - - type: Sprite - sprite: Objects/Consumable/TrashDrinks/winebottle_empty.rsi +# Small cartons - type: entity - name: lime juice carton - parent: DrinkCartonBaseEmpty + parent: [DrinkCartonBaseEmpty, DrinkJuiceLimeCarton] id: DrinkCartonLime - components: - - type: Sprite - sprite: Objects/Consumable/Drinks/limejuice.rsi - - type: entity - name: orange juice carton - parent: DrinkCartonBaseEmpty + parent: [DrinkCartonBaseEmpty, DrinkJuiceOrangeCarton] id: DrinkCartonOrange - components: - - type: Sprite - sprite: Objects/Consumable/Drinks/orangejuice.rsi - - type: entity - name: tomato juice carton - parent: DrinkCartonBaseEmpty + parent: [DrinkCartonBaseEmpty, DrinkJuiceTomatoCarton] id: DrinkCartonTomato - components: - - type: Sprite - sprite: Objects/Consumable/Drinks/tomatojuice.rsi - - type: entity - name: milk cream carton - parent: DrinkCartonBaseEmpty + parent: [DrinkCartonBaseEmpty, DrinkCreamCarton] id: DrinkCartonCream - components: - - type: Sprite - sprite: Objects/Consumable/Drinks/cream.rsi +# Large cartons - type: entity - name: milk carton - parent: DrinkCartonBaseLargeEmpty + parent: [DrinkCartonBaseLargeEmpty, DrinkMilkCarton] id: DrinkCartonMilk - components: - - type: Sprite - sprite: Objects/Consumable/Drinks/milk.rsi - type: entity - name: soy milk carton - parent: DrinkCartonBaseLargeEmpty + parent: [DrinkCartonBaseLargeEmpty, DrinkSoyMilkCarton] id: DrinkCartonSoyMilk - components: - - type: Sprite - sprite: Objects/Consumable/Drinks/soymilk.rsi - type: entity - name: oat milk carton - parent: DrinkCartonBaseLargeEmpty + parent: [DrinkCartonBaseLargeEmpty, DrinkOatMilkCarton] id: DrinkCartonOatMilk - components: - - type: Sprite - sprite: Objects/Consumable/Drinks/oatmilk.rsi diff --git a/Resources/Textures/Objects/Consumable/TrashDrinks/ntcahors_empty.rsi/icon.png b/Resources/Textures/Objects/Consumable/Drinks/ntcahors.rsi/icon_open.png similarity index 100% rename from Resources/Textures/Objects/Consumable/TrashDrinks/ntcahors_empty.rsi/icon.png rename to Resources/Textures/Objects/Consumable/Drinks/ntcahors.rsi/icon_open.png diff --git a/Resources/Textures/Objects/Consumable/Drinks/ntcahors.rsi/meta.json b/Resources/Textures/Objects/Consumable/Drinks/ntcahors.rsi/meta.json index e91afea62f..08a3a6b849 100644 --- a/Resources/Textures/Objects/Consumable/Drinks/ntcahors.rsi/meta.json +++ b/Resources/Textures/Objects/Consumable/Drinks/ntcahors.rsi/meta.json @@ -10,6 +10,9 @@ { "name": "icon" }, + { + "name": "icon_open" + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Objects/Consumable/TrashDrinks/absinthebottle_empty.rsi/icon.png b/Resources/Textures/Objects/Consumable/TrashDrinks/absinthebottle_empty.rsi/icon.png deleted file mode 100644 index 0267a69709de2ac8bf24f4607e1287c13529cf2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 453 zcmV;$0XqJPP)_wOtvW{{l*7#J8B-txOLaPl)SFfc40 z7zZ3acb?(UnX?RX{p@6$K~WUg8W}QFr=?J01Op=}&2m@*EI1)?_Q|tn81j*`R!521 zsfKk~R|gVnCRtHXwDKW?ory8Sp)-i|cjMMAa*QHB3T7=^&R}O^%wT6?Os)|O3=Cw3 zKuv#g%p!&**B>xkVPIfjV33PuXOLsiWmxNRO`TM;2E0K+mIGiVAT46o@3JdzA_!cZN5?a{C+*Tse zW7VM5Fv&&3otK@bf`exVv)kf^iFejXRxuxG{@gBN`D}tL>yxMsJ~kUJH(3UTAVFmp U-y7b4fDUHxboFyt=akR{0QVYD82|tP diff --git a/Resources/Textures/Objects/Consumable/TrashDrinks/alco-clear.rsi/meta.json b/Resources/Textures/Objects/Consumable/TrashDrinks/alco-clear.rsi/meta.json deleted file mode 100644 index db0ac608ed..0000000000 --- a/Resources/Textures/Objects/Consumable/TrashDrinks/alco-clear.rsi/meta.json +++ /dev/null @@ -1 +0,0 @@ -{"version": 1, "size": {"x": 32, "y": 32}, "license": "CC-BY-SA-3.0", "copyright": "https://github.com/discordia-space/CEV-Eris/raw/f7aa28fd4b4d0386c3393d829681ebca526f1d2d/icons/obj/drinks.dmi", "states": [{"name": "icon"}]} \ No newline at end of file diff --git a/Resources/Textures/Objects/Consumable/TrashDrinks/alebottle_empty.rsi/icon.png b/Resources/Textures/Objects/Consumable/TrashDrinks/alebottle_empty.rsi/icon.png deleted file mode 100644 index 05d0e0330f012153bec176ec84de1c35d875b6b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 473 zcmV;~0Ve*5P)lI`!GB7YOFmS(TW?*0_rmq7S7#J8X z`3&>+vCbyPEVAo@f2^*nV2SU~^Cznq7>igP) zP((!9bZOH-3t2)z9jsNKii%=Fim#~Sa}Z0{o-6NB=-KXYzx&;D&$*YY)$4V<44>}!G8a=H@=g&eKR=fsxN9VzFKbYgwf44i&6x&=@(W;KtVF>cBq*qSlku4<3~>ek3ggXGC-~EVpqQbQfv4f7((aW78rCYeqtj8>1#~;P z;B;wb2_to`_X5X1zaNahygK8Wz^;g2w-YH9z@7#E?H-5&HGpFyhs)9|czzX&+b~Bt zGZY@qd~dgS@ok+cZZ;(xQ3i69%|3sGv5gps=UKY#9xgcvQ8$PLhQh;S+Y>C6j_{!H z6}_6L-#H^esnx)TyZ6~HPOBi~HE^_eiYu)Q04L~yu*(8J@~?Opoa6208}w>kijfI4 ztW_$(IkN2uzWnwxlPog-`msnrR0Ac9)H{2FXOR^a&sX^6-)2o)6t$uF2uc|Du>RhJ zbOT^WI4WIGQ<%FGn&fY&+sTF9#q5-7QSE^R48o{1l@$F&_KFdHw`K}^dCgm@R-+5K@jvpRNyJ2 zZjsf+#6@>w-F%;QW?N@x=dDBGeMUzw{$QAS4$m_mp5OEQo*7|!dYXd_aW|cBj^6Nx zhpzeu0(k#+%J1mxB$LVT>cyMT2sv!Wb$yXsVFt@`Flwc+!-NN1%w`zbkZ^p7rJfU^ z0ijcnN|qR!xJLi@2zvR;{sTO{g-TVSQmvzSXZ9cP^x1RfavDn&laHT1hXx2?>cEFb zxBb&n9>)jQg|rH<=Q|mjd?ExLEAR|d-d*;OlV{b0x(kX7mIK4RB_2Px8+bd0N`d8q zDnVQX+y8fkjZlD?1j7Hj?S+3igs1~c4c(l(HGtTD1Sc^-j8)nTI%K$TT``p-uX*jQhtp=NL; zdy4XkPE2m#TXBxM>Z94~fdPRR;r)AA9!^}sZ!}OO_*I%hauygK%yP1IA5!3M{Xs9T zaP~qMt%KcE|8()==LW7_L8(d61H4!gTb8gA2Fvvvq6&>iZMUAkR>Oehk-wnvhDnigpo!FoqDrys(?)g+xR*(H~G3BWUb$u>T?Y1G<C2b6o1~ph^8CRCYXKJLdo&6k@h^n&FNFD%%MzOFSqE@0 zx=d&D3#C_E0Jz_jSX%U12VhTs2f(`)H6a|SUm^fe5&pe<6ZajL330NYrrdSG;plCt z)CE62?*LFRs+{xP5ZMrSL0(te1C#*@MxI)^MXlW8==ir7Kq&>8Z*>5!%($!t_^|b! zC(m9|C>8-QzJ6kNFJ~RVUdBmgJxMNKG~d;lvS5m9;G|N;GbIoGP&Uck@af}6|Ll65 ndIdmqG8O@hQ~&p&bR0Sb+N6J&ER>GO00000NkvXXu0mjfyC>XB diff --git a/Resources/Textures/Objects/Consumable/TrashDrinks/coffeeliqueurbottle_empty.rsi/meta.json b/Resources/Textures/Objects/Consumable/TrashDrinks/coffeeliqueurbottle_empty.rsi/meta.json deleted file mode 100644 index db0ac608ed..0000000000 --- a/Resources/Textures/Objects/Consumable/TrashDrinks/coffeeliqueurbottle_empty.rsi/meta.json +++ /dev/null @@ -1 +0,0 @@ -{"version": 1, "size": {"x": 32, "y": 32}, "license": "CC-BY-SA-3.0", "copyright": "https://github.com/discordia-space/CEV-Eris/raw/f7aa28fd4b4d0386c3393d829681ebca526f1d2d/icons/obj/drinks.dmi", "states": [{"name": "icon"}]} \ No newline at end of file diff --git a/Resources/Textures/Objects/Consumable/TrashDrinks/cognacbottle_empty.rsi/icon.png b/Resources/Textures/Objects/Consumable/TrashDrinks/cognacbottle_empty.rsi/icon.png deleted file mode 100644 index c10f4082561604e3fe0a38c27af7d8891d08cf13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 536 zcmV+z0_XjSP)E0jRWDI|kr>XZ&D3NAMO z0f&8o&^{#KS!kE);3btnkK>4MaXN=25|o1XOH3%_JKeqGzP}Im`@Y{jO$dQuYHX<0 zM*t&$UI3(&CB|5iF_x54mZ&}ts4u3|>4|(kzX$+^VH_)^NIn{M4m2vcAU6L7^^-%K z{W`*A{Jlo;`F}Go0_c~>yCAbsL;Tc&?}AIJ4ZQ`4x4Yj@ zy(ik`)0f&zV)f&|0s19!3jly~o&tbswK`aUNF?&jw(Ysy)kKils6i>E>AId(N@c@( zg>FHoIAbhX{Q3}&#vg-oo>EF>bzKh)5b9shUA$Z_?{q)ooTr2kTT;qWG#Y(%SI?e8 z*r?=!MkN;jfDmG%F=i>Ry>?VNy zdj;rdWr?Bb{b?2ddyX#$G@sA_nan%QGz-B20LQ7f06Z7X3m?Bvel7#Ja{vKi2rX;> z^$**I@44_j7XVQF{E2iTBDY|@utq9)Q=~6&a|ZOHP=n}Slg_fN7v1+^1`+vG+%FCN acYFl`JhC~W5A^8(0000!k}Z3G ziAei}tBhBe7V}9IuuquFy~a2!=J})N-@`8RB>d1RG@JMEy7;Cuk{<*lN)N1HZrjEz zqT-S(3dEX*%@gN{P2ALXaI1Q|m1%0o8Hss!ERTYWZ40h{WB$W3f^AZk*h$3&Ymy7z zzMIM&1+qN)+<^lJ0%BtWx4b;?@vBK`15m%IUR_;&Z1(Sr>!03w8Jvziy(5K_ZEAjD-ePXOt66Ez>4GZQz%;(`$+3 zSXwJ7Az?N-SuAqv!&S1!M!g!Kz$I(*~$JG=Cf4@H3eYD_U=~P}L ztu&t9_x5Efn96ySHQajtzgt2=0;Ef(x%2J2FF6T7aAQuwBL7vDA(~x@kwu@Lu}i;r z+K~K$X~P>2Ed@=kb@z8|?rLmQl#8u7zV7ZXkkeM~JgQ>dux3}otb_xrlNqWUdT;Mq T{^&X|@)$f_{an^LB{Ts5#lF^C diff --git a/Resources/Textures/Objects/Consumable/TrashDrinks/gildlagerbottle_empty.rsi/meta.json b/Resources/Textures/Objects/Consumable/TrashDrinks/gildlagerbottle_empty.rsi/meta.json deleted file mode 100644 index db0ac608ed..0000000000 --- a/Resources/Textures/Objects/Consumable/TrashDrinks/gildlagerbottle_empty.rsi/meta.json +++ /dev/null @@ -1 +0,0 @@ -{"version": 1, "size": {"x": 32, "y": 32}, "license": "CC-BY-SA-3.0", "copyright": "https://github.com/discordia-space/CEV-Eris/raw/f7aa28fd4b4d0386c3393d829681ebca526f1d2d/icons/obj/drinks.dmi", "states": [{"name": "icon"}]} \ No newline at end of file diff --git a/Resources/Textures/Objects/Consumable/TrashDrinks/ginbottle_empty.rsi/icon.png b/Resources/Textures/Objects/Consumable/TrashDrinks/ginbottle_empty.rsi/icon.png deleted file mode 100644 index 4be9d1fa206600be3cdcfe3ef78c89b2839a6b77..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 617 zcmV-v0+#)WP)#ev${U6;YZ%6?Wm$Qt&IRd*rfH65v)LJdL?TgcHk%?HMcM_Zy1wN1`|q6#K)-WOt8OG^Deyj7!TAXx542Ko ze6KsT@M9wET1y1bO2rukTHU?Gu?XPOqb0m2)PS$Mw#yccgI&6{dG-KfFV@#oRZZ8E zky2p61b){*ExX8_w_oQnnT)Gzaj?rsy~d#@G?0X-2DIfZy)%e%RQLA)m|3suC`$BP z004ryS9%c8qyk+V`g=eWfo*fD)JnyvKVAVkZCJ}Lf?yPjQ?PS4hZj0EP`0EpGJvD} z!?79=6rroj=ua=6LZNWIe;?WT3j-*8HH|EDwVJu_9@C%j=0 zi_2@%J-+_K!%4{rKOAROF0pE8Y-~JuJZL%B>>qvF-*0=EW*-oKxPsYD*5Fk`Ap3++ zA-kU^*O?~peR%LkaqHu6y^X7RPj2N9m-t`;R?uU`z`#q#+_ z=n#Ne4&_=+>gY{lU|>l5@czB&db87aLClHn|g7#J8BN4sXD4j5<$006O)drZuK Rski_D002ovPDHLkV1h1Q%H99~ diff --git a/Resources/Textures/Objects/Consumable/TrashDrinks/patronbottle_empty.rsi/meta.json b/Resources/Textures/Objects/Consumable/TrashDrinks/patronbottle_empty.rsi/meta.json deleted file mode 100644 index db0ac608ed..0000000000 --- a/Resources/Textures/Objects/Consumable/TrashDrinks/patronbottle_empty.rsi/meta.json +++ /dev/null @@ -1 +0,0 @@ -{"version": 1, "size": {"x": 32, "y": 32}, "license": "CC-BY-SA-3.0", "copyright": "https://github.com/discordia-space/CEV-Eris/raw/f7aa28fd4b4d0386c3393d829681ebca526f1d2d/icons/obj/drinks.dmi", "states": [{"name": "icon"}]} \ No newline at end of file diff --git a/Resources/Textures/Objects/Consumable/TrashDrinks/pwinebottle_empty.rsi/icon.png b/Resources/Textures/Objects/Consumable/TrashDrinks/pwinebottle_empty.rsi/icon.png deleted file mode 100644 index 964c96d1982916b6dd0415d2e79dd270df4f6b3c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 433 zcmV;i0Z#sjP)W-a7ma} zR788&5U1F7zh_=T-|66Zzx%xJ@B7}n7ihQJ_^B0Nzy22h)}#ZoR&kt3lmKXS%iJ_C z0}BO6>K2V|8G!I+R9Z%@1(`&Nq;9E{@IM3p0Luw*TDl%a~phj!1GqT8XfY?kY2wr`(ho!k&WL60MPZ> zz5o5~MN&o%0AQLa3?l}Bt%&);KyoTpWNa!-!2Fq!IzN zTDO>HY66if0tygdcCLj(DV$je1{Qy&vsr4NG_*8f4?3-1^}YlkqBU( b@;w7zoO^BZPL-No00000NkvXXu0mjfPM^H3 diff --git a/Resources/Textures/Objects/Consumable/TrashDrinks/pwinebottle_empty.rsi/meta.json b/Resources/Textures/Objects/Consumable/TrashDrinks/pwinebottle_empty.rsi/meta.json deleted file mode 100644 index db0ac608ed..0000000000 --- a/Resources/Textures/Objects/Consumable/TrashDrinks/pwinebottle_empty.rsi/meta.json +++ /dev/null @@ -1 +0,0 @@ -{"version": 1, "size": {"x": 32, "y": 32}, "license": "CC-BY-SA-3.0", "copyright": "https://github.com/discordia-space/CEV-Eris/raw/f7aa28fd4b4d0386c3393d829681ebca526f1d2d/icons/obj/drinks.dmi", "states": [{"name": "icon"}]} \ No newline at end of file diff --git a/Resources/Textures/Objects/Consumable/TrashDrinks/rumbottle_empty.rsi/icon.png b/Resources/Textures/Objects/Consumable/TrashDrinks/rumbottle_empty.rsi/icon.png deleted file mode 100644 index 723c599e48e4a0ddd7c2d7eb8f5ff74db16f41d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 471 zcmV;|0Vw{7P)PfUB!Y9`d4^LjDnrINlZfB zMTVe6U>+j;3%qq$mkjH+XR;CWT()=P{k|Wb@4G$E%XD3bmoek%>i+;v01U&>WLZ{a zSym0h(5N~->cng|>o1i`X#hwh5}na#MABi@uVC2KtXN#Z@a+Y!{XSO36r<>Pz6Zz_ z9G+gac%IL#3rWl_w~we6IL-iLOms5ea|=iS;c&Rg^L!2fEX(Rjk~H8r?$Q;2$;AN( zP9dCFAOLutd{C>^LT&;~CH?_C2e4fWhF#5?9GhnQ$9v`M+Ez^KnopzG=}~3q02hVA_x;Iv#(e+)sFbUyl&el8XnWx4@c{sE5R+h diff --git a/Resources/Textures/Objects/Consumable/TrashDrinks/rumbottle_empty.rsi/meta.json b/Resources/Textures/Objects/Consumable/TrashDrinks/rumbottle_empty.rsi/meta.json deleted file mode 100644 index db0ac608ed..0000000000 --- a/Resources/Textures/Objects/Consumable/TrashDrinks/rumbottle_empty.rsi/meta.json +++ /dev/null @@ -1 +0,0 @@ -{"version": 1, "size": {"x": 32, "y": 32}, "license": "CC-BY-SA-3.0", "copyright": "https://github.com/discordia-space/CEV-Eris/raw/f7aa28fd4b4d0386c3393d829681ebca526f1d2d/icons/obj/drinks.dmi", "states": [{"name": "icon"}]} \ No newline at end of file diff --git a/Resources/Textures/Objects/Consumable/TrashDrinks/tequillabottle_empty.rsi/icon.png b/Resources/Textures/Objects/Consumable/TrashDrinks/tequillabottle_empty.rsi/icon.png deleted file mode 100644 index 0d59bc4fcdba5cd25c9d0572d2a200cc9ef8d927..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 603 zcmV-h0;K(kP)(Id(gbEG{qJy`nEjs8ZE`nll z5xXQBB4m&R^rC~&E?E-IiKR*;hc1QZV6Is0(D%-Giys{C@gDF0{rUd?d+*b#)hc1e zu28f8ClG{yWm!|YuG_k<+m>Zbsp9NbJ=p8@ZbqZgvjC3c3k!bF?sp!4QJ*r(CxH& z^mMs!^5VHdcYO`uu?(KH1lf#9Vk}8A7N^^3^S1qwWGqfLW6DAS0VK#~Ov?3Vn{(BW zCNNhl;a|aiJSdg`5MRGBJ!}F1M`EM&_ly9r(rPg~IRU`EN<|t=n!w%MQ4(WG+z(v< zX7=yf+UcwH*Ke002ovPDHLkV1kjv7R~?w diff --git a/Resources/Textures/Objects/Consumable/TrashDrinks/tequillabottle_empty.rsi/meta.json b/Resources/Textures/Objects/Consumable/TrashDrinks/tequillabottle_empty.rsi/meta.json deleted file mode 100644 index db0ac608ed..0000000000 --- a/Resources/Textures/Objects/Consumable/TrashDrinks/tequillabottle_empty.rsi/meta.json +++ /dev/null @@ -1 +0,0 @@ -{"version": 1, "size": {"x": 32, "y": 32}, "license": "CC-BY-SA-3.0", "copyright": "https://github.com/discordia-space/CEV-Eris/raw/f7aa28fd4b4d0386c3393d829681ebca526f1d2d/icons/obj/drinks.dmi", "states": [{"name": "icon"}]} \ No newline at end of file diff --git a/Resources/Textures/Objects/Consumable/TrashDrinks/vermouthbottle_empty.rsi/icon.png b/Resources/Textures/Objects/Consumable/TrashDrinks/vermouthbottle_empty.rsi/icon.png deleted file mode 100644 index e64c61c8658506f6a5e950cf1255909bc81b58ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 544 zcmV+*0^j|KP)piVfsSu`J3Dx^0 z!2bYnRr+H3{)3>azXyQE(JAKBCt61Vy83%)9G(7NORcRGBLuIl!8ZRIRFn2U|6CP z`Y0Afz&J4605CBA>^(L}l^?Em1fUwNuDxA;m)hU=SXs?spstLlHzIcvlWN(8)zy96LC<-f-toXeVd4F3xUUtX>w| zK(WCrigLq&6d{~AWU$Cx99n91%U5j_d`t3P`2O#g_kZ8_Da*2ma>OFt{T-km0Nb|r zOw(L5O>@n*?LDc^urx52%Z(R{#T9^THhbdxzDP$&v*6FK@4@HA6)u}i&fO{>7xGG? zBR&Cb>xlSOideml)@Z>yz!^`~k820RVSD z=0pG@3*x1-M{~dIwj0u*0090?C;9*N3(&RzA%NI|p_9KP9FK(K;g{WLEbz+@NhrO9 zB7ocVNi@fMWWn9i2nZnhI)PZd4uB7Xy@dNaJKguEmGH#@CJqm4Go4lpu-bVlrLGHw z!gg4_x7Uo4$>eUU)w<|it5hn}0J^S!NTpJPx$&`Cr=R9J=Wm$6GDK@`S+BbI@b*NBCwgd;bbD#T(zVk;cj2{vg`T;m@g1kxmk zT3Kld?Zry5h$I|b+#=DO1gsJySc-^lKNco2YQW4}H3&Xf_A$$R^YMLe-eXm{TxOIp zHqz6-2?QbFdEUP3x{I#sE_$A~FU1*`ZcL}sKl1tf0zfjE{O|j|2uDe8K{mT#CMPFo zx32(LSy@&R9I*wrH`fF6Pb2VNA+CYr(!ohM9R34PtJUVEH4s<_>q_@vV7l|Z=-Ob6X>{sgXcAHjrh$vjgE6K7kM&S2 z7Ju0Qjl2e|EXZaz%v(+8?*5jo?aiUPqID5QwPtQ^cHpylFGFO`3l zk0)?muLH8C6PUo>-p)ziG<+7_iI~gfe%oMvtzi@jg))QIUyk5-JU+Av;{Ss8ijiCJ Y07|5&p6`0pa{vGU07*qoM6N<$f-9`?=>Px# diff --git a/Resources/Textures/Objects/Consumable/TrashDrinks/whiskeybottle_empty.rsi/meta.json b/Resources/Textures/Objects/Consumable/TrashDrinks/whiskeybottle_empty.rsi/meta.json deleted file mode 100644 index db0ac608ed..0000000000 --- a/Resources/Textures/Objects/Consumable/TrashDrinks/whiskeybottle_empty.rsi/meta.json +++ /dev/null @@ -1 +0,0 @@ -{"version": 1, "size": {"x": 32, "y": 32}, "license": "CC-BY-SA-3.0", "copyright": "https://github.com/discordia-space/CEV-Eris/raw/f7aa28fd4b4d0386c3393d829681ebca526f1d2d/icons/obj/drinks.dmi", "states": [{"name": "icon"}]} \ No newline at end of file diff --git a/Resources/Textures/Objects/Consumable/TrashDrinks/winebottle_empty.rsi/icon.png b/Resources/Textures/Objects/Consumable/TrashDrinks/winebottle_empty.rsi/icon.png deleted file mode 100644 index 45fa94abd9e48c4def4d9c6ddc600a2c0f3d3d3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 504 zcmVe1=1fKl~s7XUI0qX7AZ|?DR8xS;Ha!hg(8P*;9o$xV3IiD!^N)d(guj%UIGw{ zo)QY3(l@+pGRl?p2#9=OZT*b>!+WZ09o$4?#P9BSe14^G*f^Kr2rSOd>o&VRc{qU0 zZpT_`LE?zHmx9hl3-AVyVQR`C9K8adxCopLg_#%7)>Vf~8vr1FdrAM#zUqXG3s6{C z*<*aLmFZ<408RDzqI`-31VWMIw`Z;wfYGTKaBKwJX~ z>h@ZD1$@Q-PQcPkViu^|C%VA60C5Tep$MxxiMC6n2E-BQ(VRGI6UO72>m?R7?g1hJ zCr4MD9C?y!<%CigPQmf{3)fF(bZZmWPi9K2&6HT1dH*OUa`BmY0qKTVfEvZALi8k? u9Gmzx_n+Th0NB{xGW;YH2}mchUIX85&yHmJ%vr_&0000 Date: Fri, 25 Jul 2025 19:18:43 -0500 Subject: [PATCH 07/41] break up drinks_bottles --- .../Consumable/Drinks/drinks-cartons.yml | 170 +-- .../Consumable/Drinks/drinks_bottles.yml | 985 ------------------ .../Drinks/drinks_bottles_glass.yml | 495 +++++++++ .../Drinks/drinks_bottles_plastic.yml | 389 +++++++ .../Objects/Consumable/Drinks/drinks_cans.yml | 15 - .../Objects/Consumable/Drinks/drinks_cups.yml | 78 +- .../Objects/Consumable/Drinks/drinks_fun.yml | 54 +- .../Consumable/Drinks/drinks_special.yml | 172 ++- .../Consumable/Drinks/trash_drinks.yml | 17 +- 9 files changed, 1175 insertions(+), 1200 deletions(-) delete mode 100644 Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles.yml create mode 100644 Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_glass.yml create mode 100644 Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_plastic.yml diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks-cartons.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks-cartons.yml index 70a86e6d98..27bb1dcdb8 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks-cartons.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks-cartons.yml @@ -1,6 +1,6 @@ - type: entity abstract: true - parent: [ DrinkBase, BaseDrinkOpenable ] + parent: [ DrinkCardboardBase, BaseDrinkOpenable ] id: DrinkCartonBaseFull suffix: Full components: @@ -14,33 +14,8 @@ solutions: drink: maxVol: 50 - - type: Sprite - state: icon - - type: Item - size: Small - - type: MeleeWeapon - soundNoDamage: - path: "/Audio/Effects/Fluids/splat.ogg" - damage: - types: - Blunt: 0 - - type: Damageable - damageContainer: Inorganic - - type: Destructible - thresholds: - - trigger: - !type:DamageTrigger - damage: 20 - behaviors: - - !type:SpillBehavior { } - - !type:DoActsBehavior - acts: [ "Destruction" ] - #In future maybe add generic plastic scrap trash/debris - type: TrashOnSolutionEmpty solution: drink - - type: PhysicalComposition - materialComposition: - Cardboard: 20 - type: entity abstract: true @@ -56,24 +31,20 @@ - type: entity abstract: true - id: DrinkCartonVisualsOpenable + parent: DrinkCartonBaseFull + id: DrinkCartonBaseXtraLargeFull components: - - type: Appearance - - type: GenericVisualizer - visuals: - enum.OpenableVisuals.Opened: - enum.OpenableVisuals.Layer: - True: {state: "icon_open"} - False: {state: "icon"} - - type: Sprite - layers: - - state: icon - map: ["enum.OpenableVisuals.Layer"] + - type: SolutionContainerManager + solutions: + drink: + maxVol: 150 + - type: Item + size: Normal -## +# Small carton - type: entity - parent: [DrinkCartonVisualsOpenable, DrinkCartonBaseFull] + parent: [DrinkVisualsOpenable, DrinkCartonBaseFull] id: DrinkJuiceLimeCarton name: lime juice description: Sweet-sour goodness. @@ -85,10 +56,10 @@ - ReagentId: JuiceLime Quantity: 50 - type: Sprite - sprite: Objects/Consumable/Drinks/limejuice.rsi + sprite: Objects/Consumable/Drinks/limejuice.rsi # Looks more like plastic than cardboard - type: entity - parent: [DrinkCartonVisualsOpenable, DrinkCartonBaseFull] + parent: [DrinkVisualsOpenable, DrinkCartonBaseFull] id: DrinkJuiceOrangeCarton name: orange juice description: Full of vitamins and deliciousness! @@ -103,7 +74,7 @@ sprite: Objects/Consumable/Drinks/orangejuice.rsi - type: entity - parent: [DrinkCartonVisualsOpenable, DrinkCartonBaseFull] + parent: [DrinkVisualsOpenable, DrinkCartonBaseFull] id: DrinkJuiceTomatoCarton name: tomato juice description: Well, at least it LOOKS like tomato juice. You can't tell with all that redness. @@ -118,7 +89,7 @@ sprite: Objects/Consumable/Drinks/tomatojuice.rsi - type: entity - parent: [DrinkBottleVisualsOpenable, DrinkBottlePlasticBaseFull] + parent: [DrinkVisualsOpenable, DrinkCartonBaseFull] id: DrinkCoconutWaterCarton name: coconut water description: It's the inside of the coconut that counts. @@ -129,14 +100,11 @@ reagents: - ReagentId: CoconutWater Quantity: 50 - - type: Drink - - type: Label - currentLabel: reagent-name-coconut-water - type: Sprite sprite: Objects/Consumable/Drinks/coconutwater.rsi - type: entity - parent: [DrinkCartonVisualsOpenable, DrinkCartonBaseFull] + parent: [DrinkVisualsOpenable, DrinkCartonBaseFull] id: DrinkCreamCarton name: milk cream description: It's cream. Made from milk. What else did you think you'd find in there? @@ -151,7 +119,39 @@ sprite: Objects/Consumable/Drinks/cream.rsi - type: entity - parent: [DrinkCartonVisualsOpenable, DrinkCartonBaseLargeFull] + parent: [DrinkVisualsOpenable, DrinkCartonBaseFull] + id: DrinkJuiceLemonCarton + name: lemon juice + description: First it's sour, then it's still sour. + components: + - type: SolutionContainerManager + solutions: + drink: + reagents: + - ReagentId: JuiceLemon + Quantity: 50 + - type: Sprite + sprite: Objects/Consumable/Drinks/lemonjuice.rsi # Looks more like plastic than cardboard + +- type: entity + parent: [DrinkVisualsOpenable, DrinkCartonBaseFull] + id: DrinkJuicePineappleCarton + name: pineapple juice + description: Tastes like a tropical vacation far from space. + components: + - type: SolutionContainerManager + solutions: + drink: + reagents: + - ReagentId: JuicePineapple + Quantity: 50 + - type: Sprite + sprite: Objects/Consumable/Drinks/pineapplejuice.rsi + +# Large carton + +- type: entity + parent: [DrinkVisualsOpenable, DrinkCartonBaseLargeFull] id: DrinkMilkCarton name: milk description: An opaque white liquid produced by the mammary glands of mammals. @@ -166,7 +166,7 @@ sprite: Objects/Consumable/Drinks/milk.rsi - type: entity - parent: [DrinkCartonVisualsOpenable, DrinkCartonBaseLargeFull] + parent: [DrinkVisualsOpenable, DrinkCartonBaseLargeFull] id: DrinkSoyMilkCarton name: soy milk description: White and nutritious soy goodness! @@ -181,7 +181,7 @@ sprite: Objects/Consumable/Drinks/soymilk.rsi - type: entity - parent: [DrinkCartonVisualsOpenable, DrinkCartonBaseLargeFull] + parent: [DrinkVisualsOpenable, DrinkCartonBaseLargeFull] id: DrinkOatMilkCarton name: oat milk description: It's oat milk. Tan and nutritious goodness! @@ -195,32 +195,58 @@ - type: Sprite sprite: Objects/Consumable/Drinks/oatmilk.rsi -- type: entity - parent: [DrinkCartonVisualsOpenable, DrinkCartonBaseFull] - id: DrinkJuiceLemonCarton - name: lemon juice - description: First it's sour, then it's still sour. - components: - - type: SolutionContainerManager - solutions: - drink: - reagents: - - ReagentId: JuiceLemon - Quantity: 50 - - type: Sprite - sprite: Objects/Consumable/Drinks/lemonjuice.rsi +# Xtra large - type: entity - parent: [DrinkCartonVisualsOpenable, DrinkCartonBaseFull] - id: DrinkJuicePineappleCarton - name: pineapple juice - description: Tastes like a tropical vacation far from space. + parent: [DrinkVisualsOpenable, DrinkCartonBaseXtraLargeFull] + id: DrinkJuiceLimeCartonXL + name: lime juice XL + description: Sweet-sour goodness. components: - type: SolutionContainerManager solutions: drink: + maxVol: 150 reagents: - - ReagentId: JuicePineapple - Quantity: 50 + - ReagentId: JuiceLime + Quantity: 150 + - type: Label + currentLabel: reagent-name-juice-lime - type: Sprite - sprite: Objects/Consumable/Drinks/pineapplejuice.rsi + sprite: Objects/Consumable/Drinks/limejuice.rsi # Doesn't really look like cardboard... + +- type: entity + parent: [DrinkVisualsOpenable, DrinkCartonBaseXtraLargeFull] + id: DrinkJuiceOrangeCartonXL + name: orange juice XL + description: Full of vitamins and deliciousness! + components: + - type: SolutionContainerManager + solutions: + drink: + maxVol: 150 + reagents: + - ReagentId: JuiceOrange + Quantity: 150 + - type: Label + currentLabel: reagent-name-juice-orange + - type: Sprite + sprite: Objects/Consumable/Drinks/orangejuice.rsi + +- type: entity + parent: [DrinkVisualsOpenable, DrinkCartonBaseXtraLargeFull] + id: DrinkCreamCartonXL + name: milk cream XL + description: It's cream. Made from milk. What else did you think you'd find in there? + components: + - type: SolutionContainerManager + solutions: + drink: + maxVol: 150 + reagents: + - ReagentId: Cream + Quantity: 150 + - type: Label + currentLabel: reagent-name-cream + - type: Sprite + sprite: Objects/Consumable/Drinks/cream.rsi diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles.yml deleted file mode 100644 index 8b4bfc137b..0000000000 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles.yml +++ /dev/null @@ -1,985 +0,0 @@ -# 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: [ DrinkPlasticBase, BaseDrinkOpenable ] - id: DrinkBottlePlasticBaseFull # Large plastic - suffix: Full - components: - - type: Tag - tags: - - DrinkBottle - - type: Openable - sound: - collection: bottleOpenSounds - closeable: true - closeSound: - collection: bottleCloseSounds - - type: SolutionContainerManager - solutions: - drink: - maxVol: 100 - - type: Sprite - state: icon - sprite: Objects/Consumable/Drinks/generic_jug.rsi # fallback to generic plastic jug - - type: Item - size: Normal - -- type: entity - abstract: true - parent: DrinkBottlePlasticBaseFull - id: DrinkBottlePlasticSmallBaseFull # small plastic - components: - - type: Item - size: Small - - type: Tag - tags: - - DrinkCup - - type: SolutionContainerManager - solutions: - drink: - maxVol: 30 - - type: FitsInDispenser - solution: drink - - type: Sprite - state: icon - sprite: Objects/Consumable/Drinks/waterbottle.rsi # fallback - - type: TrashOnSolutionEmpty - solution: drink - -- type: entity - abstract: true - 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 # fallback - - type: Tool - qualities: - - Rolling - 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: DrinkBottleGlassSmallBaseFull - id: DrinkBottleGlassBaseFull # large glass - components: - - type: SolutionContainerManager - solutions: - drink: - maxVol: 100 - - type: Sprite - sprite: Objects/Consumable/Drinks/alco-bottle.rsi # fallback - - type: Item - size: Normal - -- type: entity - abstract: true - id: DrinkBottleVisualsOpenable - components: - - type: Appearance - - type: GenericVisualizer - visuals: - enum.OpenableVisuals.Opened: - enum.OpenableVisuals.Layer: - True: {state: "icon_open"} - False: {state: "icon"} - - type: Sprite - layers: - - state: icon - map: ["enum.OpenableVisuals.Layer"] - -- type: entity - abstract: true - id: DrinkBottleVisualsAll - components: - - type: Appearance - - type: GenericVisualizer - visuals: - enum.OpenableVisuals.Opened: - enum.OpenableVisuals.Layer: - True: {state: "icon_open"} - False: {state: "icon_empty"} - - type: Sprite - sprite: Objects/Consumable/Drinks/alco-bottle.rsi - layers: - - state: icon - map: ["enum.OpenableVisuals.Layer"] - - state: fill-1 - map: ["enum.SolutionContainerLayers.Fill"] - visible: false - - type: SolutionContainerVisuals - maxFillLevels: 5 - fillBaseName: fill- - inHandsMaxFillLevels: 3 - inHandsFillBaseName: -fill- - -# Large Glass Bottles - -- type: entity - parent: [DrinkBottleVisualsAll, DrinkBottleGlassBaseFull] - id: DrinkAbsintheBottleFull - name: Jailbreaker Verte - description: One sip of this and you just know you're gonna have a good time. - components: - - type: SolutionContainerManager - solutions: - drink: - reagents: - - ReagentId: Absinthe - Quantity: 100 - - type: Label - currentLabel: reagent-name-absinthe - - type: Sprite - sprite: Objects/Consumable/Drinks/absinthebottle.rsi - -- type: entity - parent: [DrinkBottleVisualsAll, DrinkBottleGlassBaseFull] - id: DrinkBlueCuracaoBottleFull - name: Miss Blue Curaçao - description: A fruity, exceptionally azure drink. Does not allow the imbiber to use the fifth magic. - components: - - type: SolutionContainerManager - solutions: - drink: - reagents: - - ReagentId: BlueCuracao - Quantity: 100 - - type: Label - currentLabel: reagent-name-blue-curacao - - type: Sprite - sprite: Objects/Consumable/Drinks/alco-bottle.rsi - layers: - - state: icon_blue - map: ["enum.OpenableVisuals.Layer"] - - state: fill-1 - map: ["enum.SolutionContainerLayers.Fill"] - visible: false - - type: SolutionContainerVisuals - maxFillLevels: 6 - fillBaseName: fill- - -- type: entity - parent: [DrinkBottleVisualsOpenable, DrinkBottleGlassBaseFull] - id: DrinkBottleOfNothingFull - name: bottle of nothing - description: A bottle filled with nothing. - components: - - type: SolutionContainerManager - solutions: - drink: - reagents: - - ReagentId: Nothing - Quantity: 100 - - type: Label - currentLabel: reagent-name-nothing - - type: Sprite - sprite: Objects/Consumable/Drinks/bottleofnothing.rsi - -- type: entity - parent: [DrinkBottleVisualsOpenable, DrinkBottleGlassBaseFull] - id: DrinkChampagneBottleFull - name: champagne bottle - description: Only people devoid of imagination can't find an excuse for champagne. - components: - - type: SolutionContainerManager - solutions: - drink: - reagents: - - ReagentId: Champagne - Quantity: 100 - - type: Label - currentLabel: reagent-name-champagne - - type: Sprite - 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] - id: DrinkCognacBottleFull - name: cognac bottle - description: A sweet and strongly alcoholic drink, made after numerous distillations and years of maturing. You might as well not scream 'SHITCURITY' this time. - components: - - type: SolutionContainerManager - solutions: - drink: - reagents: - - ReagentId: Cognac - Quantity: 100 - - type: Label - currentLabel: reagent-name-cognac - - type: Sprite - sprite: Objects/Consumable/Drinks/cognacbottle.rsi - -- type: entity - parent: [DrinkBottleVisualsAll, DrinkBottleGlassBaseFull] - id: DrinkGrenadineBottleFull - name: Briar Rose grenadine syrup bottle - description: Sweet and tangy, a bar syrup used to add color or flavor to drinks. - components: - - type: SolutionContainerManager - solutions: - drink: - reagents: - - ReagentId: Grenadine - Quantity: 100 - - type: Label - currentLabel: reagent-name-grenadine - - type: Sprite - sprite: Objects/Consumable/Drinks/grenadinebottle.rsi - - type: SolutionContainerVisuals - maxFillLevels: 6 - -- type: entity - parent: [DrinkBottleVisualsAll, DrinkBottleGlassBaseFull] - id: DrinkGinBottleFull - name: Griffeater gin - description: A bottle of high quality gin, produced in the New London Space Station. - components: - - type: SolutionContainerManager - solutions: - drink: - reagents: - - ReagentId: Gin - Quantity: 100 - - type: Label - currentLabel: reagent-name-gin - - type: Sprite - sprite: Objects/Consumable/Drinks/ginbottle.rsi - -- type: entity - parent: [DrinkBottleVisualsAll, DrinkBottleGlassBaseFull] - id: DrinkGildlagerBottleFull - name: Gildlager bottle - description: 100 proof cinnamon schnapps, made for alcoholic teen girls on spring break. - components: - - type: SolutionContainerManager - solutions: - drink: - reagents: - - ReagentId: Gildlager - Quantity: 100 - - type: Label - currentLabel: reagent-name-gildlager - - type: Sprite - sprite: Objects/Consumable/Drinks/gildlagerbottle.rsi - -- type: entity - parent: [DrinkBottleVisualsOpenable, DrinkBottleGlassBaseFull] - id: DrinkCoffeeLiqueurBottleFull - name: coffee liqueur bottle - description: The great taste of coffee with none of the benifits. - components: - - type: SolutionContainerManager - solutions: - drink: - reagents: - - ReagentId: CoffeeLiqueur - Quantity: 100 - - type: Label - currentLabel: reagent-name-coffeeliqueur - - type: Sprite - sprite: Objects/Consumable/Drinks/coffeeliqueurbottle.rsi - -- type: entity - parent: [DrinkBottleVisualsAll, DrinkBottleGlassBaseFull] - id: DrinkMelonLiquorBottleFull - name: Emeraldine melon liquor - description: A bottle of 46 proof Emeraldine melon liquor. Sweet and light. - components: - - type: SolutionContainerManager - solutions: - drink: - reagents: - - ReagentId: MelonLiquor - Quantity: 100 - - type: Label - currentLabel: reagent-name-melon-liquor - - type: Sprite - sprite: Objects/Consumable/Drinks/alco-bottle.rsi - layers: - - state: icon_green - map: ["enum.OpenableVisuals.Layer"] - - state: fill-1 - map: ["enum.SolutionContainerLayers.Fill"] - visible: false - - type: SolutionContainerVisuals - maxFillLevels: 6 - fillBaseName: fill- - -- type: entity - parent: [DrinkBottleVisualsAll, DrinkBottleGlassBaseFull] - id: DrinkPatronBottleFull - name: Wrapp Artiste Patrón bottle - description: Silver laced tequila, served in space night clubs across the galaxy. - components: - - type: SolutionContainerManager - solutions: - drink: - reagents: - - ReagentId: Patron - Quantity: 100 - - type: Label - currentLabel: reagent-name-patron - - type: Sprite - sprite: Objects/Consumable/Drinks/patronbottle.rsi - -- type: entity - parent: [DrinkBottleVisualsOpenable, DrinkBottleGlassBaseFull] - id: DrinkPoisonWinebottleFull - name: Warlock's Velvet bottle - description: What a delightful packaging for a surely high quality wine! The vintage must be amazing! - components: - - type: SolutionContainerManager - solutions: - drink: - reagents: - - ReagentId: PoisonWine - Quantity: 100 - - type: Sprite - sprite: Objects/Consumable/Drinks/pwinebottle.rsi - - type: Tag - tags: - - Wine - - DrinkBottle - -- type: entity - parent: [DrinkBottleVisualsAll, DrinkBottleGlassBaseFull] - id: DrinkRumBottleFull - name: Captain Pete's Cuban spiced rum - description: This isn't just rum, oh no. It's practically GRIFF in a bottle. - components: - - type: SolutionContainerManager - solutions: - drink: - reagents: - - ReagentId: Rum - Quantity: 100 - - type: Label - currentLabel: reagent-name-rum - - type: Sprite - sprite: Objects/Consumable/Drinks/rumbottle.rsi - -- type: entity - parent: [DrinkBottleVisualsAll, DrinkBottleGlassBaseFull] - id: DrinkTequilaBottleFull - name: Caccavo Guaranteed Quality tequila bottle - description: Made from premium petroleum distillates, pure thalidomide and other fine quality ingredients! - components: - - type: SolutionContainerManager - solutions: - drink: - reagents: - - ReagentId: Tequila - Quantity: 100 - - type: Label - currentLabel: reagent-name-tequila - - type: Sprite - sprite: Objects/Consumable/Drinks/tequillabottle.rsi - - type: Sealable - -- type: entity - parent: [DrinkBottleVisualsAll, DrinkBottleGlassBaseFull] - id: DrinkVermouthBottleFull - name: Goldeneye vermouth bottle - description: Sweet, sweet dryness! - components: - - type: SolutionContainerManager - solutions: - drink: - reagents: - - ReagentId: Vermouth - Quantity: 100 - - type: Label - currentLabel: reagent-name-vermouth - - type: Sprite - sprite: Objects/Consumable/Drinks/vermouthbottle.rsi - - type: Sealable - -- type: entity - parent: [DrinkBottleVisualsAll, DrinkBottleGlassBaseFull] - id: DrinkVodkaBottleFull - name: vodka bottle - description: Aah, vodka. Prime choice of drink AND fuel by Russians worldwide. - components: - - type: SolutionContainerManager - solutions: - drink: - reagents: - - ReagentId: Vodka - Quantity: 100 - - type: Label - currentLabel: reagent-name-vodka - - type: Sprite - sprite: Objects/Consumable/Drinks/vodkabottle.rsi - - type: Sealable - -- type: entity - parent: [DrinkBottleVisualsAll, DrinkBottleGlassBaseFull] - id: DrinkWhiskeyBottleFull - name: Uncle Git's Special Reserve - description: A premium single-malt whiskey, gently matured inside the tunnels of a nuclear shelter. TUNNEL WHISKEY RULES. - components: - - type: SolutionContainerManager - solutions: - drink: - reagents: - - ReagentId: Whiskey - Quantity: 100 - - type: Label - currentLabel: reagent-name-whiskey - - type: Sprite - sprite: Objects/Consumable/Drinks/whiskeybottle.rsi - - type: Sealable - -- type: entity - parent: [DrinkBottleVisualsOpenable, DrinkBottleGlassBaseFull] - id: DrinkWineBottleFull - name: Doublebearded Bearded Special wine bottle - description: A faint aura of unease and asspainery surrounds the bottle. - components: - - type: SolutionContainerManager - solutions: - drink: - reagents: - - ReagentId: Wine - Quantity: 100 - - type: Label - currentLabel: reagent-name-wine - - type: Sprite - sprite: Objects/Consumable/Drinks/winebottle.rsi - - type: Sealable - - type: Tag - tags: - - Wine - - DrinkBottle - -- type: entity - parent: [DrinkBottleVisualsAll, DrinkBottleGlassBaseFull] - id: DrinkBeerGrowler # Needs to be renamed DrinkBeerBottleFull - name: beer growler # beer it is. coffee. beer? coff-ee? be-er? c-o... b-e - description: An alcoholic beverage made from malted grains, hops, yeast, and water. XL growler bottle. - components: - - type: SolutionContainerManager - solutions: - drink: - maxVol: 150 - reagents: - - ReagentId: Beer - Quantity: 150 - - type: Label - currentLabel: reagent-name-beer - - type: Sprite - sprite: Objects/Consumable/Drinks/beer.rsi - - type: Openable - closeable: false - - type: Tag - tags: - - Beer - - DrinkBottle - -- type: entity - parent: [DrinkBottleVisualsAll, DrinkBottleGlassBaseFull] - id: DrinkAleBottleFullGrowler - name: Magm-Ale growler - description: A true dorf's drink of choice. XL growler bottle. - components: - - type: SolutionContainerManager - solutions: - drink: - maxVol: 150 - reagents: - - ReagentId: Ale - Quantity: 150 - - type: Label - currentLabel: reagent-name-ale - - type: Sprite - sprite: Objects/Consumable/Drinks/alebottle.rsi - - type: Openable - closeable: false - -# Large Plastic Bottles - -- type: entity - parent: [DrinkBottleVisualsAll, DrinkBottlePlasticBaseFull] - id: DrinkColaBottleFull - name: Space Cola bottle - description: Cola. In spaaace! - components: - - type: SolutionContainerManager - solutions: - drink: - reagents: - - ReagentId: Cola - Quantity: 100 - - type: Label - currentLabel: reagent-name-cola - - type: Sprite - sprite: Objects/Consumable/Drinks/colabottle.rsi - - type: Sealable - -- type: entity - parent: [DrinkBottleVisualsAll, DrinkBottlePlasticBaseFull] - id: DrinkSpaceMountainWindBottleFull - name: Space Solar Wind bottle - description: Blows right through you like a solar wind. - components: - - type: SolutionContainerManager - solutions: - drink: - reagents: - - ReagentId: SpaceMountainWind - Quantity: 100 - - type: Label - currentLabel: reagent-name-space-mountain-wind - - type: Sprite - sprite: Objects/Consumable/Drinks/space_mountain_wind_bottle.rsi - - type: Sealable - -- type: entity - parent: [DrinkBottleVisualsAll, DrinkBottlePlasticBaseFull] - id: DrinkSpaceUpBottleFull - name: Space-Up bottle - description: Tastes like a hull breach in your mouth. - components: - - type: SolutionContainerManager - solutions: - drink: - reagents: - - ReagentId: SpaceUp - Quantity: 100 - - type: Label - currentLabel: reagent-name-space-up - - type: Sprite - sprite: Objects/Consumable/Drinks/space-up_bottle.rsi - - type: Sealable - -- type: entity - parent: [DrinkBottleVisualsAll, DrinkBottlePlasticBaseFull] - id: DrinkSodaWaterBottleFull - name: soda water bottle - description: Like water, but angry! - components: - - type: SolutionContainerManager - solutions: - drink: - maxVol: 100 - reagents: - - ReagentId: SodaWater - Quantity: 100 - - type: Sprite - sprite: Objects/Consumable/Drinks/sodawater-bottle.rsi - - type: Label - currentLabel: reagent-name-soda-water - - type: Sealable - -- type: entity - parent: [DrinkBottleVisualsAll, DrinkBottlePlasticBaseFull] - id: DrinkTonicWaterBottleFull - name: tonic water bottle - description: Like soda water, but angrier maybe? Often sweeter. - components: - - type: SolutionContainerManager - solutions: - drink: - maxVol: 100 - reagents: - - ReagentId: TonicWater - Quantity: 100 - - type: Sprite - sprite: Objects/Consumable/Drinks/tonic-bottle.rsi - - type: Label - currentLabel: reagent-name-tonic-water - - type: Sealable - -# Small Bottles - -- type: entity - parent: [DrinkBottleVisualsAll, DrinkBottlePlasticSmallBaseFull] - id: DrinkWaterBottleFull - name: water bottle - description: Simple clean water of unknown origin. You think that maybe you dont want to know it. - components: - - type: SolutionContainerManager - solutions: - drink: - reagents: - - ReagentId: Water - Quantity: 30 - - type: Sprite - sprite: Objects/Consumable/Drinks/waterbottle.rsi - - type: Label - currentLabel: reagent-name-water - - type: Sealable - -- type: entity - parent: [DrinkBottleVisualsAll, DrinkBottleGlassSmallBaseFull] - id: DrinkBeerBottleFull - name: beer bottle # beer it is. coffee. beer? coff-ee? be-er? c-o... b-e - description: An alcoholic beverage made from malted grains, hops, yeast, and water. - components: - - type: SolutionContainerManager - solutions: - drink: - reagents: - - ReagentId: Beer - Quantity: 50 - - type: Label - currentLabel: reagent-name-beer - - type: Sprite - sprite: Objects/Consumable/Drinks/beer.rsi - - type: Openable - closeable: false - - type: Tag - tags: - - Beer - -- type: entity - parent: [DrinkBottleVisualsAll, DrinkBottleGlassSmallBaseFull] - id: DrinkAleBottleFull - name: Magm-Ale bottle - description: A true dorf's drink of choice. - components: - - type: SolutionContainerManager - solutions: - drink: - reagents: - - ReagentId: Ale - Quantity: 50 - - type: Label - currentLabel: reagent-name-ale - - type: Sprite - sprite: Objects/Consumable/Drinks/alebottle.rsi - - type: Openable - closeable: false - -- type: entity - parent: [DrinkBottleVisualsOpenable, DrinkBottleGlassSmallBaseFull] - id: DrinkSakeBottleFull - name: small sake bottle - description: The regret of the next morning seems to be nipping on the bottle too. - components: - - type: SolutionContainerManager - solutions: - drink: - reagents: - - ReagentId: Sake - Quantity: 50 - - type: Label - currentLabel: reagent-name-sake - - type: Sprite - sprite: Objects/Consumable/Drinks/sakebottle.rsi - - type: Sealable - -# Cartons, TODO: this needs to be moved elsewhere eventually, since cartons shouldnt smash into glass shards - -- type: entity - parent: [DrinkBottleVisualsOpenable, DrinkBottlePlasticBaseFull] - id: DrinkJuiceLimeCartonXL - name: lime juice XL - description: Sweet-sour goodness. - components: - - type: SolutionContainerManager - solutions: - drink: - maxVol: 150 - reagents: - - ReagentId: JuiceLime - Quantity: 150 - - type: Drink - - type: Label - currentLabel: reagent-name-juice-lime - - type: Sprite - sprite: Objects/Consumable/Drinks/limejuice.rsi - -- type: entity - parent: [DrinkBottleVisualsOpenable, DrinkBottlePlasticBaseFull] - id: DrinkJuiceOrangeCartonXL - name: orange juice XL - description: Full of vitamins and deliciousness! - components: - - type: SolutionContainerManager - solutions: - drink: - maxVol: 150 - reagents: - - ReagentId: JuiceOrange - Quantity: 150 - - type: Drink - - type: Label - currentLabel: reagent-name-juice-orange - - type: Sprite - sprite: Objects/Consumable/Drinks/orangejuice.rsi - -- type: entity - parent: [DrinkBottleVisualsOpenable, DrinkBottlePlasticBaseFull] - id: DrinkCreamCartonXL - name: milk cream XL - description: It's cream. Made from milk. What else did you think you'd find in there? - components: - - type: SolutionContainerManager - solutions: - drink: - maxVol: 150 - reagents: - - ReagentId: Cream - Quantity: 150 - - type: Drink - - type: Label - currentLabel: reagent-name-cream - - type: Sprite - sprite: Objects/Consumable/Drinks/cream.rsi - -#boring jugs some more sprites are made - -- type: entity - parent: [DrinkBottleVisualsOpenable, DrinkBottlePlasticBaseFull] - id: DrinkSugarJug - name: sugar jug - suffix: For Drinks, Full - description: Some people put this in their coffee... - components: - - type: SolutionContainerManager - solutions: - drink: - maxVol: 300 - reagents: - - ReagentId: Sugar - Quantity: 300 - - type: Drink - - type: Label - currentLabel: reagent-name-sugar - -- type: entity - parent: [DrinkBottleVisualsOpenable, DrinkBottlePlasticBaseFull] - id: DrinkLemonLimeJug - name: Smite jug - description: A dual citrus sensation. - components: - - type: SolutionContainerManager - solutions: - drink: - maxVol: 300 - reagents: - - ReagentId: LemonLime - Quantity: 300 - - type: Drink - - type: Label - currentLabel: reagent-name-lemon-lime - -- type: entity - parent: [DrinkBottleVisualsOpenable, DrinkBottlePlasticBaseFull] - id: DrinkMeadJug - name: mead jug - description: Storing mead in a plastic jug should be a crime. - components: - - type: SolutionContainerManager - solutions: - drink: - maxVol: 150 - reagents: - - ReagentId: Mead - Quantity: 150 - - type: Drink - - type: Label - currentLabel: reagent-name-mead - -- type: entity - parent: [DrinkBottleVisualsOpenable, DrinkBottlePlasticBaseFull] - id: DrinkIceJug - name: ice jug - description: Stubborn water. Pretty cool. - components: - - type: SolutionContainerManager - solutions: - drink: - maxVol: 300 - reagents: - - ReagentId: Ice - Quantity: 300 - - type: Drink - - type: Label - currentLabel: reagent-name-ice - -- type: entity - parent: [DrinkBottleVisualsOpenable, DrinkBottlePlasticBaseFull] - id: DrinkCoconutWaterJug - name: coconut water jug - description: It's on the inside of the coconut that counts. - components: - - type: SolutionContainerManager - solutions: - drink: - maxVol: 300 - reagents: - - ReagentId: CoconutWater - Quantity: 300 - - type: Drink - - type: Label - currentLabel: reagent-name-coconut-water - -- type: entity - parent: [DrinkBottleVisualsOpenable, DrinkBottlePlasticBaseFull] - id: DrinkCoffeeJug - name: coffee jug - description: Wake up juice, of the heated kind. - components: - - type: SolutionContainerManager - solutions: - drink: - maxVol: 300 - reagents: - - ReagentId: Coffee - Quantity: 300 - - type: Drink - - type: Label - currentLabel: reagent-name-coffee - -- type: entity - parent: [DrinkBottleVisualsOpenable, DrinkBottlePlasticBaseFull] - id: DrinkTeaJug - name: tea jug - description: The drink of choice for the Bri'ish and hipsters. - components: - - type: SolutionContainerManager - solutions: - drink: - maxVol: 300 - reagents: - - ReagentId: Tea - Quantity: 300 - - type: Drink - - type: Label - currentLabel: reagent-name-tea - -- type: entity - parent: [DrinkBottleVisualsOpenable, DrinkBottlePlasticBaseFull] - id: DrinkGreenTeaJug - name: green tea jug - description: It's like tea... but green! great for settling the stomach. - components: - - type: SolutionContainerManager - solutions: - drink: - maxVol: 300 - reagents: - - ReagentId: GreenTea - Quantity: 300 - - type: Drink - - type: Label - currentLabel: reagent-name-green-tea - -- type: entity - parent: [DrinkBottleVisualsOpenable, DrinkBottlePlasticBaseFull] - id: DrinkIcedTeaJug - name: iced tea jug - description: For when the regular tea is too hot for you. Boohoo. - components: - - type: SolutionContainerManager - solutions: - drink: - maxVol: 300 - reagents: - - ReagentId: IcedTea - Quantity: 300 - - type: Drink - - type: Label - currentLabel: reagent-name-iced-tea - -- type: entity - parent: [DrinkBottleVisualsOpenable, DrinkBottlePlasticBaseFull] - id: DrinkDrGibbJug - name: Dr. Gibb jug - description: 42 different flavours... in a jug! - components: - - type: SolutionContainerManager - solutions: - drink: - maxVol: 300 - reagents: - - ReagentId: DrGibb - Quantity: 300 - - type: Drink - - type: Label - currentLabel: reagent-name-dr-gibb - -- type: entity - parent: [DrinkBottleVisualsOpenable, DrinkBottlePlasticBaseFull] - id: DrinkRootBeerJug - name: root beer jug - description: This drink makes Australians giggle. - components: - - type: SolutionContainerManager - solutions: - drink: - maxVol: 300 - reagents: - - ReagentId: RootBeer - Quantity: 300 - - type: Drink - - type: Label - currentLabel: reagent-name-root-beer - -- type: entity - parent: [DrinkBottleVisualsOpenable, DrinkBottlePlasticBaseFull] - id: DrinkWaterMelonJuiceJug - name: watermelon juice jug - description: May include leftover seeds. - components: - - type: SolutionContainerManager - solutions: - drink: - maxVol: 300 - reagents: - - ReagentId: JuiceWatermelon - Quantity: 300 - - type: Drink - - type: Label - currentLabel: reagent-name-juice-watermelon - -- type: entity - parent: [DrinkBottleVisualsOpenable, DrinkBottlePlasticBaseFull] - id: DrinkEnergyDrinkJug - name: Red Bool jug - description: A jug of Red Bool, with enough caffeine to kill a whole station. - components: - - type: SolutionContainerManager - solutions: - drink: - maxVol: 100 - reagents: - - ReagentId: EnergyDrink - Quantity: 100 - - type: Drink - - type: Label - currentLabel: reagent-name-energy-drink - -- type: entity - parent: [DrinkBottleVisualsOpenable, DrinkBottlePlasticBaseFull] - id: CustomDrinkJug - name: beverage jug - description: A jug for storing custom made drinks. - components: - - type: SolutionContainerManager - solutions: - drink: - maxVol: 150 - - type: Drink diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_glass.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_glass.yml new file mode 100644 index 0000000000..b8e7b5c4ef --- /dev/null +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_glass.yml @@ -0,0 +1,495 @@ +# 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: [ DrinkGlassBase, BaseDrinkOpenable ] + id: DrinkBottleGlassSmallBaseFull + 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 # fallback + - type: Tool + qualities: + - Rolling + 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: DrinkBottleGlassSmallBaseFull + id: DrinkBottleGlassBaseFull + components: + - type: SolutionContainerManager + solutions: + drink: + maxVol: 100 + - type: Sprite + sprite: Objects/Consumable/Drinks/alco-bottle.rsi # fallback + - type: Item + size: Normal + +# Large Glass Bottles + +- type: entity + parent: [DrinkVisualsAll, DrinkBottleGlassBaseFull] + id: DrinkAbsintheBottleFull + name: Jailbreaker Verte + description: One sip of this and you just know you're gonna have a good time. + components: + - type: SolutionContainerManager + solutions: + drink: + reagents: + - ReagentId: Absinthe + Quantity: 100 + - type: Label + currentLabel: reagent-name-absinthe + - type: Sprite + sprite: Objects/Consumable/Drinks/absinthebottle.rsi + +- type: entity + parent: [DrinkVisualsAll, DrinkBottleGlassBaseFull] + id: DrinkBlueCuracaoBottleFull + name: Miss Blue Curaçao + description: A fruity, exceptionally azure drink. Does not allow the imbiber to use the fifth magic. + components: + - type: SolutionContainerManager + solutions: + drink: + reagents: + - ReagentId: BlueCuracao + Quantity: 100 + - type: Label + currentLabel: reagent-name-blue-curacao + - type: Sprite + sprite: Objects/Consumable/Drinks/alco-bottle.rsi + layers: + - state: icon_blue + map: ["enum.OpenableVisuals.Layer"] + - state: fill-1 + map: ["enum.SolutionContainerLayers.Fill"] + visible: false + - type: SolutionContainerVisuals + maxFillLevels: 6 + fillBaseName: fill- + +- type: entity + parent: [DrinkVisualsOpenable, DrinkBottleGlassBaseFull] + id: DrinkBottleOfNothingFull + name: bottle of nothing + description: A bottle filled with nothing. + components: + - type: SolutionContainerManager + solutions: + drink: + reagents: + - ReagentId: Nothing + Quantity: 100 + - type: Label + currentLabel: reagent-name-nothing + - type: Sprite + sprite: Objects/Consumable/Drinks/bottleofnothing.rsi + +- type: entity + parent: [DrinkVisualsOpenable, DrinkBottleGlassBaseFull] + id: DrinkChampagneBottleFull + name: champagne bottle + description: Only people devoid of imagination can't find an excuse for champagne. + components: + - type: SolutionContainerManager + solutions: + drink: + reagents: + - ReagentId: Champagne + Quantity: 100 + - type: Label + currentLabel: reagent-name-champagne + - type: Sprite + 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: [DrinkVisualsAll, DrinkBottleGlassBaseFull] + id: DrinkCognacBottleFull + name: cognac bottle + description: A sweet and strongly alcoholic drink, made after numerous distillations and years of maturing. You might as well not scream 'SHITCURITY' this time. + components: + - type: SolutionContainerManager + solutions: + drink: + reagents: + - ReagentId: Cognac + Quantity: 100 + - type: Label + currentLabel: reagent-name-cognac + - type: Sprite + sprite: Objects/Consumable/Drinks/cognacbottle.rsi + +- type: entity + parent: [DrinkVisualsAll, DrinkBottleGlassBaseFull] + id: DrinkGrenadineBottleFull + name: Briar Rose grenadine syrup bottle + description: Sweet and tangy, a bar syrup used to add color or flavor to drinks. + components: + - type: SolutionContainerManager + solutions: + drink: + reagents: + - ReagentId: Grenadine + Quantity: 100 + - type: Label + currentLabel: reagent-name-grenadine + - type: Sprite + sprite: Objects/Consumable/Drinks/grenadinebottle.rsi + - type: SolutionContainerVisuals + maxFillLevels: 6 + +- type: entity + parent: [DrinkVisualsAll, DrinkBottleGlassBaseFull] + id: DrinkGinBottleFull + name: Griffeater gin + description: A bottle of high quality gin, produced in the New London Space Station. + components: + - type: SolutionContainerManager + solutions: + drink: + reagents: + - ReagentId: Gin + Quantity: 100 + - type: Label + currentLabel: reagent-name-gin + - type: Sprite + sprite: Objects/Consumable/Drinks/ginbottle.rsi + +- type: entity + parent: [DrinkVisualsAll, DrinkBottleGlassBaseFull] + id: DrinkGildlagerBottleFull + name: Gildlager bottle + description: 100 proof cinnamon schnapps, made for alcoholic teen girls on spring break. + components: + - type: SolutionContainerManager + solutions: + drink: + reagents: + - ReagentId: Gildlager + Quantity: 100 + - type: Label + currentLabel: reagent-name-gildlager + - type: Sprite + sprite: Objects/Consumable/Drinks/gildlagerbottle.rsi + +- type: entity + parent: [DrinkVisualsOpenable, DrinkBottleGlassBaseFull] + id: DrinkCoffeeLiqueurBottleFull + name: coffee liqueur bottle + description: The great taste of coffee with none of the benifits. + components: + - type: SolutionContainerManager + solutions: + drink: + reagents: + - ReagentId: CoffeeLiqueur + Quantity: 100 + - type: Label + currentLabel: reagent-name-coffeeliqueur + - type: Sprite + sprite: Objects/Consumable/Drinks/coffeeliqueurbottle.rsi + +- type: entity + parent: [DrinkVisualsAll, DrinkBottleGlassBaseFull] + id: DrinkMelonLiquorBottleFull + name: Emeraldine melon liquor + description: A bottle of 46 proof Emeraldine melon liquor. Sweet and light. + components: + - type: SolutionContainerManager + solutions: + drink: + reagents: + - ReagentId: MelonLiquor + Quantity: 100 + - type: Label + currentLabel: reagent-name-melon-liquor + - type: Sprite + sprite: Objects/Consumable/Drinks/alco-bottle.rsi + layers: + - state: icon_green + map: ["enum.OpenableVisuals.Layer"] + - state: fill-1 + map: ["enum.SolutionContainerLayers.Fill"] + visible: false + - type: SolutionContainerVisuals + maxFillLevels: 6 + fillBaseName: fill- + +- type: entity + parent: [DrinkVisualsAll, DrinkBottleGlassBaseFull] + id: DrinkPatronBottleFull + name: Wrapp Artiste Patrón bottle + description: Silver laced tequila, served in space night clubs across the galaxy. + components: + - type: SolutionContainerManager + solutions: + drink: + reagents: + - ReagentId: Patron + Quantity: 100 + - type: Label + currentLabel: reagent-name-patron + - type: Sprite + sprite: Objects/Consumable/Drinks/patronbottle.rsi + +- type: entity + parent: [DrinkVisualsOpenable, DrinkBottleGlassBaseFull] + id: DrinkPoisonWinebottleFull + name: Warlock's Velvet bottle + description: What a delightful packaging for a surely high quality wine! The vintage must be amazing! + components: + - type: SolutionContainerManager + solutions: + drink: + reagents: + - ReagentId: PoisonWine + Quantity: 100 + - type: Sprite + sprite: Objects/Consumable/Drinks/pwinebottle.rsi + - type: Tag + tags: + - Wine + - DrinkBottle + +- type: entity + parent: [DrinkVisualsAll, DrinkBottleGlassBaseFull] + id: DrinkRumBottleFull + name: Captain Pete's Cuban spiced rum + description: This isn't just rum, oh no. It's practically GRIFF in a bottle. + components: + - type: SolutionContainerManager + solutions: + drink: + reagents: + - ReagentId: Rum + Quantity: 100 + - type: Label + currentLabel: reagent-name-rum + - type: Sprite + sprite: Objects/Consumable/Drinks/rumbottle.rsi + +- type: entity + parent: [DrinkVisualsAll, DrinkBottleGlassBaseFull] + id: DrinkTequilaBottleFull + name: Caccavo Guaranteed Quality tequila bottle + description: Made from premium petroleum distillates, pure thalidomide and other fine quality ingredients! + components: + - type: SolutionContainerManager + solutions: + drink: + reagents: + - ReagentId: Tequila + Quantity: 100 + - type: Label + currentLabel: reagent-name-tequila + - type: Sprite + sprite: Objects/Consumable/Drinks/tequillabottle.rsi + - type: Sealable + +- type: entity + parent: [DrinkVisualsAll, DrinkBottleGlassBaseFull] + id: DrinkVermouthBottleFull + name: Goldeneye vermouth bottle + description: Sweet, sweet dryness! + components: + - type: SolutionContainerManager + solutions: + drink: + reagents: + - ReagentId: Vermouth + Quantity: 100 + - type: Label + currentLabel: reagent-name-vermouth + - type: Sprite + sprite: Objects/Consumable/Drinks/vermouthbottle.rsi + - type: Sealable + +- type: entity + parent: [DrinkVisualsAll, DrinkBottleGlassBaseFull] + id: DrinkVodkaBottleFull + name: vodka bottle + description: Aah, vodka. Prime choice of drink AND fuel by Russians worldwide. + components: + - type: SolutionContainerManager + solutions: + drink: + reagents: + - ReagentId: Vodka + Quantity: 100 + - type: Label + currentLabel: reagent-name-vodka + - type: Sprite + sprite: Objects/Consumable/Drinks/vodkabottle.rsi + - type: Sealable + +- type: entity + parent: [DrinkVisualsAll, DrinkBottleGlassBaseFull] + id: DrinkWhiskeyBottleFull + name: Uncle Git's Special Reserve + description: A premium single-malt whiskey, gently matured inside the tunnels of a nuclear shelter. TUNNEL WHISKEY RULES. + components: + - type: SolutionContainerManager + solutions: + drink: + reagents: + - ReagentId: Whiskey + Quantity: 100 + - type: Label + currentLabel: reagent-name-whiskey + - type: Sprite + sprite: Objects/Consumable/Drinks/whiskeybottle.rsi + - type: Sealable + +- type: entity + parent: [DrinkVisualsOpenable, DrinkBottleGlassBaseFull] + id: DrinkWineBottleFull + name: Doublebearded Bearded Special wine bottle + description: A faint aura of unease and asspainery surrounds the bottle. + components: + - type: SolutionContainerManager + solutions: + drink: + reagents: + - ReagentId: Wine + Quantity: 100 + - type: Label + currentLabel: reagent-name-wine + - type: Sprite + sprite: Objects/Consumable/Drinks/winebottle.rsi + - type: Sealable + - type: Tag + tags: + - Wine + - DrinkBottle + +- type: entity + parent: [DrinkVisualsAll, DrinkBottleGlassBaseFull] + id: DrinkBeerGrowler # Needs to be renamed DrinkBeerBottleFull + name: beer growler # beer it is. coffee. beer? coff-ee? be-er? c-o... b-e + description: An alcoholic beverage made from malted grains, hops, yeast, and water. XL growler bottle. + components: + - type: SolutionContainerManager + solutions: + drink: + maxVol: 150 + reagents: + - ReagentId: Beer + Quantity: 150 + - type: Label + currentLabel: reagent-name-beer + - type: Sprite + sprite: Objects/Consumable/Drinks/beer.rsi + - type: Openable + closeable: false + - type: Tag + tags: + - Beer + - DrinkBottle + +- type: entity + parent: [DrinkVisualsAll, DrinkBottleGlassBaseFull] + id: DrinkAleBottleFullGrowler + name: Magm-Ale growler + description: A true dorf's drink of choice. XL growler bottle. + components: + - type: SolutionContainerManager + solutions: + drink: + maxVol: 150 + reagents: + - ReagentId: Ale + Quantity: 150 + - type: Label + currentLabel: reagent-name-ale + - type: Sprite + sprite: Objects/Consumable/Drinks/alebottle.rsi + - type: Openable + closeable: false + +# Small glass bottles + +- type: entity + parent: [DrinkVisualsAll, DrinkBottleGlassSmallBaseFull] + id: DrinkBeerBottleFull + name: beer bottle # beer it is. coffee. beer? coff-ee? be-er? c-o... b-e + description: An alcoholic beverage made from malted grains, hops, yeast, and water. + components: + - type: SolutionContainerManager + solutions: + drink: + reagents: + - ReagentId: Beer + Quantity: 50 + - type: Label + currentLabel: reagent-name-beer + - type: Sprite + sprite: Objects/Consumable/Drinks/beer.rsi + - type: Openable + closeable: false # can't put the cap back on + - type: Sealable + examineTextUnsealed: drink-component-on-examine-is-unsealed-crown-cap # tell the player why it can't close + - type: Tag + tags: + - Beer + +- type: entity + parent: [DrinkVisualsAll, DrinkBottleGlassSmallBaseFull] + id: DrinkAleBottleFull + name: Magm-Ale bottle + description: A true dorf's drink of choice. + components: + - type: SolutionContainerManager + solutions: + drink: + reagents: + - ReagentId: Ale + Quantity: 50 + - type: Label + currentLabel: reagent-name-ale + - type: Sprite + sprite: Objects/Consumable/Drinks/alebottle.rsi + - type: Openable + closeable: false # can't put the cap back on + - type: Sealable + examineTextUnsealed: drink-component-on-examine-is-unsealed-crown-cap # tell the player why it can't close + +- type: entity + parent: [DrinkVisualsOpenable, DrinkBottleGlassSmallBaseFull] + id: DrinkSakeBottleFull + name: small sake bottle + description: The regret of the next morning seems to be nipping on the bottle too. + components: + - type: SolutionContainerManager + solutions: + drink: + reagents: + - ReagentId: Sake + Quantity: 50 + - type: Label + currentLabel: reagent-name-sake + - type: Sprite + sprite: Objects/Consumable/Drinks/sakebottle.rsi diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_plastic.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_plastic.yml new file mode 100644 index 0000000000..5e526831d7 --- /dev/null +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_plastic.yml @@ -0,0 +1,389 @@ +- type: entity + abstract: true + parent: [ DrinkPlasticBase, BaseDrinkOpenable ] + id: DrinkBottlePlasticSmallBaseFull + suffix: Full + components: + - type: Openable + sound: + collection: bottleOpenSounds + closeable: true + closeSound: + collection: bottleCloseSounds + - type: Tag + tags: + - DrinkCup + - type: SolutionContainerManager + solutions: + drink: + maxVol: 30 + - type: FitsInDispenser + solution: drink + - type: Sprite + state: icon + sprite: Objects/Consumable/Drinks/waterbottle.rsi # fallback + - type: TrashOnSolutionEmpty + solution: drink + +- type: entity + abstract: true + parent: DrinkBottlePlasticSmallBaseFull + id: DrinkBottlePlasticBaseFull + components: + - type: Tag + tags: + - DrinkBottle + - type: SolutionContainerManager + solutions: + drink: + maxVol: 100 + - type: Sprite + state: icon + sprite: Objects/Consumable/Drinks/generic_jug.rsi # fallback to generic plastic jug + - type: Item + size: Normal + +# Empty + +- type: entity + parent: [DrinkVisualsOpenable, DrinkBottlePlasticBaseFull] + id: CustomDrinkJug + name: beverage jug + description: A jug for storing custom made drinks. + components: + - type: SolutionContainerManager + solutions: + drink: + maxVol: 150 + +# Small Plastic Bottles + +- type: entity + parent: [DrinkVisualsAll, DrinkBottlePlasticSmallBaseFull] + id: DrinkWaterBottleFull + name: water bottle + description: Simple clean water of unknown origin. You think that maybe you dont want to know it. + components: + - type: SolutionContainerManager + solutions: + drink: + reagents: + - ReagentId: Water + Quantity: 30 + - type: Sprite + sprite: Objects/Consumable/Drinks/waterbottle.rsi + - type: Label + currentLabel: reagent-name-water + +# Large Plastic Bottles + +- type: entity + parent: [DrinkVisualsAll, DrinkBottlePlasticBaseFull] + id: DrinkColaBottleFull + name: Space Cola bottle + description: Cola. In spaaace! + components: + - type: SolutionContainerManager + solutions: + drink: + reagents: + - ReagentId: Cola + Quantity: 100 + - type: Label + currentLabel: reagent-name-cola + - type: Sprite + sprite: Objects/Consumable/Drinks/colabottle.rsi + +- type: entity + parent: [DrinkVisualsAll, DrinkBottlePlasticBaseFull] + id: DrinkSpaceMountainWindBottleFull + name: Space Solar Wind bottle + description: Blows right through you like a solar wind. + components: + - type: SolutionContainerManager + solutions: + drink: + reagents: + - ReagentId: SpaceMountainWind + Quantity: 100 + - type: Label + currentLabel: reagent-name-space-mountain-wind + - type: Sprite + sprite: Objects/Consumable/Drinks/space_mountain_wind_bottle.rsi + +- type: entity + parent: [DrinkVisualsAll, DrinkBottlePlasticBaseFull] + id: DrinkSpaceUpBottleFull + name: Space-Up bottle + description: Tastes like a hull breach in your mouth. + components: + - type: SolutionContainerManager + solutions: + drink: + reagents: + - ReagentId: SpaceUp + Quantity: 100 + - type: Label + currentLabel: reagent-name-space-up + - type: Sprite + sprite: Objects/Consumable/Drinks/space-up_bottle.rsi + +- type: entity + parent: [DrinkVisualsAll, DrinkBottlePlasticBaseFull] + id: DrinkSodaWaterBottleFull + name: soda water bottle + description: Like water, but angry! + components: + - type: SolutionContainerManager + solutions: + drink: + maxVol: 100 + reagents: + - ReagentId: SodaWater + Quantity: 100 + - type: Sprite + sprite: Objects/Consumable/Drinks/sodawater-bottle.rsi + - type: Label + currentLabel: reagent-name-soda-water + +- type: entity + parent: [DrinkVisualsAll, DrinkBottlePlasticBaseFull] + id: DrinkTonicWaterBottleFull + name: tonic water bottle + description: Like soda water, but angrier maybe? Often sweeter. + components: + - type: SolutionContainerManager + solutions: + drink: + maxVol: 100 + reagents: + - ReagentId: TonicWater + Quantity: 100 + - type: Sprite + sprite: Objects/Consumable/Drinks/tonic-bottle.rsi + - type: Label + currentLabel: reagent-name-tonic-water + +- type: entity + parent: [DrinkVisualsOpenable, DrinkBottlePlasticBaseFull] + id: DrinkEnergyDrinkJug + name: Red Bool jug + description: A jug of Red Bool, with enough caffeine to kill a whole station. + components: + - type: SolutionContainerManager + solutions: + drink: + maxVol: 100 + reagents: + - ReagentId: EnergyDrink + Quantity: 100 + - type: Label + currentLabel: reagent-name-energy-drink + # TODO new sprite + +# Xtra large + +- type: entity + parent: [DrinkVisualsOpenable, DrinkBottlePlasticBaseFull] + id: DrinkSugarJug + name: sugar jug + suffix: For Drinks, Full + description: Some people put this in their coffee... + components: + - type: SolutionContainerManager + solutions: + drink: + maxVol: 300 + reagents: + - ReagentId: Sugar + Quantity: 300 + - type: Label + currentLabel: reagent-name-sugar + # TODO new sprite + +- type: entity + parent: [DrinkVisualsOpenable, DrinkBottlePlasticBaseFull] + id: DrinkLemonLimeJug + name: Smite jug + description: A dual citrus sensation. + components: + - type: SolutionContainerManager + solutions: + drink: + maxVol: 300 + reagents: + - ReagentId: LemonLime + Quantity: 300 + - type: Label + currentLabel: reagent-name-lemon-lime + # TODO new sprite + +- type: entity + parent: [DrinkVisualsOpenable, DrinkBottlePlasticBaseFull] + id: DrinkMeadJug + name: mead jug + description: Storing mead in a plastic jug should be a crime. + components: + - type: SolutionContainerManager + solutions: + drink: + maxVol: 150 + reagents: + - ReagentId: Mead + Quantity: 150 + - type: Label + currentLabel: reagent-name-mead + # TODO new sprite + +- type: entity + parent: [DrinkVisualsOpenable, DrinkBottlePlasticBaseFull] + id: DrinkIceJug + name: ice jug + description: Stubborn water. Pretty cool. + components: + - type: SolutionContainerManager + solutions: + drink: + maxVol: 300 + reagents: + - ReagentId: Ice + Quantity: 300 + - type: Label + currentLabel: reagent-name-ice + # TODO new sprite + +- type: entity + parent: [DrinkVisualsOpenable, DrinkBottlePlasticBaseFull] + id: DrinkCoconutWaterJug + name: coconut water jug + description: It's on the inside of the coconut that counts. + components: + - type: SolutionContainerManager + solutions: + drink: + maxVol: 300 + reagents: + - ReagentId: CoconutWater + Quantity: 300 + - type: Label + currentLabel: reagent-name-coconut-water + # TODO new sprite + +- type: entity + parent: [DrinkVisualsOpenable, DrinkBottlePlasticBaseFull] + id: DrinkCoffeeJug + name: coffee jug + description: Wake up juice, of the heated kind. + components: + - type: SolutionContainerManager + solutions: + drink: + maxVol: 300 + reagents: + - ReagentId: Coffee + Quantity: 300 + - type: Label + currentLabel: reagent-name-coffee + # TODO new sprite + +- type: entity + parent: [DrinkVisualsOpenable, DrinkBottlePlasticBaseFull] + id: DrinkTeaJug + name: tea jug + description: The drink of choice for the Bri'ish and hipsters. + components: + - type: SolutionContainerManager + solutions: + drink: + maxVol: 300 + reagents: + - ReagentId: Tea + Quantity: 300 + - type: Label + currentLabel: reagent-name-tea + # TODO new sprite + +- type: entity + parent: [DrinkVisualsOpenable, DrinkBottlePlasticBaseFull] + id: DrinkGreenTeaJug + name: green tea jug + description: It's like tea... but green! great for settling the stomach. + components: + - type: SolutionContainerManager + solutions: + drink: + maxVol: 300 + reagents: + - ReagentId: GreenTea + Quantity: 300 + - type: Label + currentLabel: reagent-name-green-tea + # TODO new sprite + +- type: entity + parent: [DrinkVisualsOpenable, DrinkBottlePlasticBaseFull] + id: DrinkIcedTeaJug + name: iced tea jug + description: For when the regular tea is too hot for you. Boohoo. + components: + - type: SolutionContainerManager + solutions: + drink: + maxVol: 300 + reagents: + - ReagentId: IcedTea + Quantity: 300 + - type: Label + currentLabel: reagent-name-iced-tea + # TODO new sprite + +- type: entity + parent: [DrinkVisualsOpenable, DrinkBottlePlasticBaseFull] + id: DrinkDrGibbJug + name: Dr. Gibb jug + description: 42 different flavours... in a jug! + components: + - type: SolutionContainerManager + solutions: + drink: + maxVol: 300 + reagents: + - ReagentId: DrGibb + Quantity: 300 + - type: Label + currentLabel: reagent-name-dr-gibb + # TODO new sprite + +- type: entity + parent: [DrinkVisualsOpenable, DrinkBottlePlasticBaseFull] + id: DrinkRootBeerJug + name: root beer jug + description: This drink makes Australians giggle. + components: + - type: SolutionContainerManager + solutions: + drink: + maxVol: 300 + reagents: + - ReagentId: RootBeer + Quantity: 300 + - type: Label + currentLabel: reagent-name-root-beer + # TODO new sprite + +- type: entity + parent: [DrinkVisualsOpenable, DrinkBottlePlasticBaseFull] + id: DrinkWaterMelonJuiceJug + name: watermelon juice jug + description: May include leftover seeds. + components: + - type: SolutionContainerManager + solutions: + drink: + maxVol: 300 + reagents: + - ReagentId: JuiceWatermelon + Quantity: 300 + - type: Label + currentLabel: reagent-name-juice-watermelon + # TODO new sprite diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml index 53ab1c6fee..a81f8a35c8 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml @@ -7,9 +7,6 @@ - type: SolutionContainerManager solutions: drink: - reagents: - - ReagentId: Cola - Quantity: 30 maxVol: 30 grindable: reagents: # 5u -> 1/2 steel sheet (10u) @@ -22,20 +19,8 @@ maxTransferAmount: 15 - type: Extractable grindableSolutionName: grindable - - type: Sprite - state: icon - layers: - - state: icon - map: ["enum.OpenableVisuals.Layer"] - type: FitsInDispenser solution: drink - - type: Appearance - - type: GenericVisualizer - visuals: - enum.OpenableVisuals.Opened: - enum.OpenableVisuals.Layer: - True: {state: "icon_open"} - False: {state: "icon"} - type: Tool qualities: - Rolling diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml index 844cb9fb62..21902e4fd4 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml @@ -43,8 +43,6 @@ materialComposition: Glass: 25 -## - # Misc Cups - type: entity parent: DrinkBaseCup @@ -60,6 +58,53 @@ materialComposition: Gold: 100 +- type: entity + parent: DrinkBaseCup + id: DrinkTeacupEmpty + name: teacup + description: A plain white porcelain teacup. + components: + - type: Icon + sprite: Objects/Consumable/Drinks/teacup.rsi + state: icon-vend-tea + - type: Sprite + sprite: Objects/Consumable/Drinks/teacup.rsi + layers: + - state: icon-0 + - map: ["enum.SolutionContainerLayers.Fill"] + state: icon-4 + - type: Appearance + - type: SolutionContainerVisuals + maxFillLevels: 4 + fillBaseName: icon- + +- 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: DrinkBaseCup id: DrinkWaterCup @@ -276,10 +321,8 @@ solution: drink - type: entity - parent: DrinkBaseCup + parent: DrinkTeacupEmpty id: DrinkTeacup - name: teacup - description: A plain white porcelain teacup. components: - type: SolutionContainerManager solutions: @@ -287,24 +330,11 @@ reagents: - ReagentId: Tea Quantity: 20 - - type: Icon - sprite: Objects/Consumable/Drinks/teacup.rsi - state: icon-vend-tea - - type: Sprite - sprite: Objects/Consumable/Drinks/teacup.rsi - layers: - - state: icon-0 - - map: ["enum.SolutionContainerLayers.Fill"] - state: icon-4 - - type: Appearance - - type: SolutionContainerVisuals - maxFillLevels: 4 - fillBaseName: icon- - type: TrashOnSolutionEmpty solution: drink - type: entity - parent: DrinkBaseCup + parent: DrinkTeacupEmpty id: DrinkGreenTea name: green tea description: A plain white porcelain teacup. @@ -318,16 +348,6 @@ - type: Icon sprite: Objects/Consumable/Drinks/teacup.rsi state: icon-vend-green-tea - - type: Sprite - sprite: Objects/Consumable/Drinks/teacup.rsi - layers: - - state: icon-0 - - map: ["enum.SolutionContainerLayers.Fill"] - state: icon-4 - - type: Appearance - - type: SolutionContainerVisuals - maxFillLevels: 4 - fillBaseName: icon- - type: TrashOnSolutionEmpty solution: drink diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_fun.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_fun.yml index 0cd960bed1..e4817febf2 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_fun.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_fun.yml @@ -1,5 +1,5 @@ - type: entity - parent: DrinkBase + parent: [DrinkVisualsOpenable, DrinkBase] id: DrinkSpaceGlue name: space glue tube description: High performance glue intended for maintenance of extremely complex mechanical equipment. DON'T DRINK! @@ -17,7 +17,6 @@ visible: false - state: icon-front map: [ "enum.SolutionContainerLayers.Overlay" ] - - type: Appearance - type: Glue - type: SolutionContainerManager solutions: @@ -29,12 +28,6 @@ - type: SolutionContainerVisuals maxFillLevels: 6 fillBaseName: fill - - type: GenericVisualizer - visuals: - enum.OpenableVisuals.Opened: - enum.OpenableVisuals.Layer: - True: {state: "icon_open"} - False: {state: "icon"} - type: Tag tags: - DrinkSpaceGlue @@ -42,7 +35,7 @@ solution: drink - type: entity - parent: DrinkBase + parent: [DrinkVisualsOpenable, DrinkBase] id: DrinkSpaceLube name: space lube tube description: High performance lubricant intended for maintenance of extremely complex mechanical equipment. @@ -60,7 +53,6 @@ visible: false - state: icon-front map: [ "enum.SolutionContainerLayers.Overlay" ] - - type: Appearance - type: SolutionContainerManager solutions: drink: @@ -71,16 +63,11 @@ - type: SolutionContainerVisuals maxFillLevels: 6 fillBaseName: fill - - type: GenericVisualizer - visuals: - enum.OpenableVisuals.Opened: - enum.OpenableVisuals.Layer: - True: {state: "icon_open"} - False: {state: "icon"} - type: Lube - type: TrashOnSolutionEmpty solution: drink +# Find your nearest clown and give them a gift :o) - type: entity parent: BluespaceBeaker id: BottomlessLube @@ -102,6 +89,16 @@ - ReagentId: SpaceLube Quantity: 200 +- type: entity + parent: DrinkGlassBase + id: DrinkJarWhat + name: jar of something + description: You can't really tell what this is. + components: + - type: Drink + - type: Sprite + sprite: Objects/Consumable/Drinks/jar_what.rsi + # Mopwata - type: weightedRandomFillSolution id: RandomFillMopwata @@ -150,13 +147,11 @@ - FourteenLoko - type: entity - parent: DrinkBottleGlassBaseFull + parent: [DrinkVisualsAll, DrinkBottleGlassSmallBaseFull] id: DrinkMopwataBottleRandom name: delicious mopwata description: A foggy brown bottle with a faded label depicting a mop. It comes full of murky... vintage. components: - - type: Item - size: Small - type: SolutionContainerManager solutions: drink: @@ -167,26 +162,5 @@ - type: RandomFillSolution solution: drink weightedRandomId: RandomFillMopwata - - type: PressurizedSolution - solution: drink - - type: Shakeable - - type: Appearance - - type: GenericVisualizer - visuals: - enum.OpenableVisuals.Opened: - enum.OpenableVisuals.Layer: - True: {state: "icon_open"} - False: {state: "icon_empty"} - type: Sprite sprite: Objects/Consumable/Drinks/mopwata.rsi - layers: - - state: icon - map: ["enum.OpenableVisuals.Layer"] - - state: fill-1 - map: ["enum.SolutionContainerLayers.Fill"] - visible: false - - type: SolutionContainerVisuals - maxFillLevels: 5 - fillBaseName: fill- - inHandsMaxFillLevels: 3 - inHandsFillBaseName: -fill- diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml index f6fb5ab8ec..6dd0103914 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml @@ -1,3 +1,67 @@ +- type: entity + parent: DrinkGlassBase + id: DrinkShotGlass + name: shot glass + description: Perfect for slamming down onto the table angrily. + components: + - type: SolutionContainerManager + solutions: + drink: + maxVol: 5 + - type: Sprite + sprite: Objects/Consumable/Drinks/shotglass.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: SolutionContainerVisuals + maxFillLevels: 2 + fillBaseName: fill + inHandsMaxFillLevels: 1 + inHandsFillBaseName: -fill- + +- type: entity + parent: DrinkBase + id: DrinkIceBucket + name: ice bucket + description: A special bucket of refreshy ice. Prohibited use for challenge with the same name! + components: + - type: SolutionContainerManager + solutions: + drink: + reagents: + - ReagentId: Ice + Quantity: 200 + - type: Sprite + sprite: Objects/Consumable/Drinks/icebucket.rsi + state: icon + - type: PhysicalComposition + materialComposition: + Steel: 75 + +- 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 + +# Bartender tools + - type: entity parent: DrinkBase id: DrinkShaker @@ -24,43 +88,6 @@ reactionTypes: - Shake -- type: entity - parent: DrinkGlassBase - id: DrinkShotGlass - name: shot glass - description: Perfect for slamming down onto the table angrily. - components: - - type: SolutionContainerManager - solutions: - drink: - maxVol: 5 - - type: Sprite - sprite: Objects/Consumable/Drinks/shotglass.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: SolutionContainerVisuals - maxFillLevels: 2 - fillBaseName: fill - inHandsMaxFillLevels: 1 - inHandsFillBaseName: -fill- - -- type: entity - parent: DrinkGlassBase - id: DrinkJarWhat - name: jar of something - description: You can't really tell what this is. - components: - - type: Drink - - type: Sprite - sprite: Objects/Consumable/Drinks/jar_what.rsi - - type: entity parent: DrinkBase id: DrinkJigger @@ -84,25 +111,6 @@ materialComposition: Steel: 20 -- type: entity - parent: DrinkBase - id: DrinkIceBucket - name: ice bucket - description: A special bucket of refreshy ice. Prohibited use for challenge with the same name! - components: - - type: SolutionContainerManager - solutions: - drink: - reagents: - - ReagentId: Ice - Quantity: 200 - - type: Sprite - sprite: Objects/Consumable/Drinks/icebucket.rsi - state: icon - - type: PhysicalComposition - materialComposition: - Steel: 75 - - type: entity parent: DrinkBase id: Pitcher @@ -132,3 +140,55 @@ Steel: 300 - type: FitsInDispenser solution: drink + +# Weird empty shakes + +- 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 diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/trash_drinks.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/trash_drinks.yml index 134a0c27d2..4f7aeeb992 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/trash_drinks.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/trash_drinks.yml @@ -1,4 +1,5 @@ -# These can still be used as containers +# File for containers like bottles or milk jugs that are empty + - type: entity abstract: true parent: [ BaseDrinkOpenableOpen, BaseDrinkEmptyTrash ] @@ -29,13 +30,23 @@ - type: entity abstract: true - parent: [ BaseDrinkOpenableOpen, BaseDrinkEmptyTrash, DrinkCartonBaseFull ] + parent: [ BaseDrinkOpenableOpen, BaseDrinkEmptyTrash ] id: DrinkCartonBaseEmpty + components: + - type: SolutionContainerManager + solutions: + drink: + maxVol: 50 - type: entity abstract: true - parent: [ BaseDrinkOpenableOpen, BaseDrinkEmptyTrash, DrinkCartonBaseLargeFull ] + parent: [ BaseDrinkOpenableOpen, BaseDrinkEmptyTrash ] id: DrinkCartonBaseLargeEmpty + components: + - type: SolutionContainerManager + solutions: + drink: + maxVol: 100 # Small bottles From 5a4373daccf0e7427604b7a212be8283e9899ce2 Mon Sep 17 00:00:00 2001 From: iaada Date: Fri, 25 Jul 2025 19:19:04 -0500 Subject: [PATCH 08/41] break up drinks_bottles --- .../nutrition/components/drink-component.ftl | 1 + .../Objects/Consumable/Drinks/base_drinks.yml | 173 ++++++++---------- 2 files changed, 81 insertions(+), 93 deletions(-) diff --git a/Resources/Locale/en-US/nutrition/components/drink-component.ftl b/Resources/Locale/en-US/nutrition/components/drink-component.ftl index 5fa449396c..c3e6735057 100644 --- a/Resources/Locale/en-US/nutrition/components/drink-component.ftl +++ b/Resources/Locale/en-US/nutrition/components/drink-component.ftl @@ -4,6 +4,7 @@ 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-on-examine-is-full = Full drink-component-on-examine-is-mostly-full = Mostly Full drink-component-on-examine-is-half-full = Halfway Full diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/base_drinks.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/base_drinks.yml index bac4db0d57..8393033718 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/base_drinks.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/base_drinks.yml @@ -1,6 +1,3 @@ -# 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, bottles, beakers, and other freely accessible solutions - type: entity abstract: true @@ -102,11 +99,56 @@ - !type:SpillBehavior { } - !type:DoActsBehavior acts: [ "Destruction" ] + #In future maybe add generic plastic scrap trash/debris - type: PhysicalComposition materialComposition: Plastic: 25 -# Cans and bottles +# A destructible, opaque cardboard bottle +- type: entity + abstract: true + parent: DrinkBase + id: DrinkCardboardBase + components: + - type: Damageable + damageContainer: Inorganic + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 5 + behaviors: + - !type:SpillBehavior { } + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: PhysicalComposition + materialComposition: + Cardboard: 25 + +# A destructible, opaque metal can +- type: entity + abstract: true + parent: DrinkBase + id: DrinkMetalBase + components: + - type: Damageable + damageContainer: Inorganic + damageModifierSet: FlimsyMetallic + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 10 + behaviors: + - !type:SpillBehavior { } + - !type:DoActsBehavior + acts: [ "Destruction" ] + #In future maybe add generic metal scrap trash/debris + - type: PhysicalComposition + materialComposition: + Steel: 25 + +# Un-opened cans and bottles - type: entity abstract: true id: BaseDrinkOpenable @@ -117,7 +159,7 @@ - type: Shakeable - type: Sealable -# Cans and bottles (opened) +# Pre-opened cans and bottles - type: entity abstract: true parent: BaseDrinkOpenable @@ -144,100 +186,45 @@ tags: - Trash -### -# TODO: MOVE - +# Basic visualizer for an openable entity, often paired with BaseDrinkOpenable - type: entity - parent: DrinkGlassBase - id: DrinkTeapot - name: teapot # short and stout - description: An elegant teapot. It simply oozes class. + abstract: true + id: DrinkVisualsOpenable components: - - type: SolutionContainerManager - solutions: - drink: - maxVol: 100 - reagents: - - ReagentId: Tea - Quantity: 100 + - type: Appearance + - type: GenericVisualizer + visuals: + enum.OpenableVisuals.Opened: + enum.OpenableVisuals.Layer: + True: {state: "icon_open"} + False: {state: "icon"} - 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" ] + map: ["enum.OpenableVisuals.Layer"] + +# Visualizer for an openable entity with fill levels +- type: entity + abstract: true + id: DrinkVisualsAll + components: - type: Appearance - - type: SolutionContainerManager - solutions: - drink: - maxVol: 30 + - type: GenericVisualizer + visuals: + enum.OpenableVisuals.Opened: + enum.OpenableVisuals.Layer: + True: {state: "icon_open"} + False: {state: "icon_empty"} + - type: Sprite + sprite: Objects/Consumable/Drinks/alco-bottle.rsi + layers: + - state: icon + map: ["enum.OpenableVisuals.Layer"] + - state: fill-1 + map: ["enum.SolutionContainerLayers.Fill"] + visible: false - type: SolutionContainerVisuals maxFillLevels: 5 - fillBaseName: fill - inHandsMaxFillLevels: 1 + fillBaseName: fill- + inHandsMaxFillLevels: 3 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 From 12d635c0e9e211b06ae855bd3a6f19ba89c40316 Mon Sep 17 00:00:00 2001 From: iaada Date: Fri, 25 Jul 2025 19:24:13 -0500 Subject: [PATCH 09/41] Revert "trash drinks gets trashed (fixed)" This reverts commit eb8599d204d51527539e1dde4898960b4080d341. --- .../Entities/Objects/Misc/broken_bottle.yml | 2 +- .../Objects/Misc/broken_bottle.rsi/icon.png | Bin 0 -> 656 bytes .../Objects/Misc/broken_bottle.rsi/meta.json | 1 + 3 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 Resources/Textures/Objects/Misc/broken_bottle.rsi/icon.png create mode 100644 Resources/Textures/Objects/Misc/broken_bottle.rsi/meta.json diff --git a/Resources/Prototypes/Entities/Objects/Misc/broken_bottle.yml b/Resources/Prototypes/Entities/Objects/Misc/broken_bottle.yml index b458f0ae21..12240adf47 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/broken_bottle.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/broken_bottle.yml @@ -15,7 +15,7 @@ soundHit: path: /Audio/Weapons/bladeslice.ogg - type: Sprite - sprite: Objects/Consumable/TrashDrinks/broken_bottle.rsi + sprite: Objects/Misc/broken_bottle.rsi state: icon - type: DamageOtherOnHit damage: diff --git a/Resources/Textures/Objects/Misc/broken_bottle.rsi/icon.png b/Resources/Textures/Objects/Misc/broken_bottle.rsi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..56c2b98bba1e3d5c82ed23a36211c5ea546d56e4 GIT binary patch literal 656 zcmV;B0&o3^P)#q5-7QSE^R48o{1l@$F&_KFdHw`K}^dCgm@R-+5K@jvpRNyJ2 zZjsf+#6@>w-F%;QW?N@x=dDBGeMUzw{$QAS4$m_mp5OEQo*7|!dYXd_aW|cBj^6Nx zhpzeu0(k#+%J1mxB$LVT>cyMT2sv!Wb$yXsVFt@`Flwc+!-NN1%w`zbkZ^p7rJfU^ z0ijcnN|qR!xJLi@2zvR;{sTO{g-TVSQmvzSXZ9cP^x1RfavDn&laHT1hXx2?>cEFb zxBb&n9>)jQg|rH<=Q|mjd?ExLEAR|d-d*;OlV{b0x(kX7mIK4RB_2Px8+bd0N`d8q zDnVQX+y8fkjZlD?1j7Hj?S+3igs1~c4c(l(HGtTD1Sc^-j8)nTI%K$TT``p-uX*jQhtp=NL; zdy4XkPE2m#TXBxM>Z94~fdPRR;r)AA9!^}sZ!}OO_*I%hauygK%yP1IA5!3M{Xs9T zaP~qMt%KcE|8()==LW7_L8(d61H4!gTb8gA2Fvvvq6&>iZM Date: Fri, 25 Jul 2025 20:12:19 -0500 Subject: [PATCH 10/41] cleanup pass --- .../Drinks/drinks_bottles_glass.yml | 2 + .../Objects/Consumable/Drinks/drinks_cans.yml | 57 +------------------ .../Objects/Consumable/Drinks/drinks_cups.yml | 4 +- .../Consumable/Drinks/drinks_flasks.yml | 38 +++++-------- .../Consumable/Drinks/drinks_special.yml | 53 +++++++++++++++++ 5 files changed, 73 insertions(+), 81 deletions(-) diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_glass.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_glass.yml index b8e7b5c4ef..61d97558a4 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_glass.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_glass.yml @@ -386,6 +386,8 @@ - Wine - DrinkBottle +# Extra large bottles + - type: entity parent: [DrinkVisualsAll, DrinkBottleGlassBaseFull] id: DrinkBeerGrowler # Needs to be renamed DrinkBeerBottleFull diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml index a81f8a35c8..8627c703f1 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml @@ -1,7 +1,7 @@ # 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: [ DrinkBase, BaseDrinkOpenable ] + parent: [ DrinkMetalBase, BaseDrinkOpenable, DrinkVisualsOpenable ] id: DrinkCanBaseFull components: - type: SolutionContainerManager @@ -490,59 +490,6 @@ - type: Item sprite: Objects/Consumable/Drinks/energy_drink.rsi -- type: entity - id: DrinkCanPack - parent: BaseStorageItem - name: 6pack - components: - - type: Sprite - sprite: Objects/Misc/6pack.rsi - layers: - - state: plastic-thingy - - state: 6pack1 - map: ["6pack1"] - visible: false - - state: 6pack2 - map: ["6pack2"] - visible: false - - state: 6pack3 - map: ["6pack3"] - visible: false - - state: 6pack4 - map: ["6pack4"] - visible: false - - state: 6pack5 - map: ["6pack5"] - visible: false - - state: 6pack6 - map: ["6pack6"] - visible: false - - type: Item - size: Normal - - type: Storage - grid: - - 0,0,2,3 - whitelist: - tags: - - Cola - hideStackVisualsWhenClosed: false - - type: StorageFill - contents: - - id: DrinkColaCan - amount: 6 - - type: ItemCounter - count: - tags: [Cola] - composite: true - layerStates: - - 6pack1 - - 6pack2 - - 6pack3 - - 6pack4 - - 6pack5 - - 6pack6 - - type: Appearance - - type: entity parent: DrinkCanBaseFull id: DrinkShamblersJuiceCan @@ -617,6 +564,7 @@ - type: Tag tags: - Beer + - DrinkCan - type: entity parent: DrinkCanBaseFull @@ -644,3 +592,4 @@ - type: Tag tags: - Wine + - DrinkCan diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml index 21902e4fd4..a74f61824a 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml @@ -79,10 +79,10 @@ fillBaseName: icon- - 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 + name: coupe glass + description: A classic thin neck coupe glass, the icon of fragile labels on crates around the galaxy. components: - type: Sprite sprite: Objects/Consumable/Drinks/glass_coupe_shape.rsi diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_flasks.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_flasks.yml index 9e1b100dbf..ed623f15ca 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_flasks.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_flasks.yml @@ -1,7 +1,7 @@ - type: entity + abstract: true parent: DrinkBase id: FlaskBase - abstract: true components: - type: SolutionContainerManager solutions: @@ -15,22 +15,6 @@ Steel: 300 - type: FitsInDispenser solution: drink - -- type: entity - id: DrinkFlaskVisualsOpenable - abstract: true - components: - - type: GenericVisualizer - visuals: - enum.OpenableVisuals.Opened: - enum.OpenableVisuals.Layer: - True: {state: "icon_open"} - False: {state: "icon"} - - type: Appearance - - type: Sprite - layers: - - state: icon - map: ["enum.OpenableVisuals.Layer"] - type: Openable sound: collection: flaskOpenSounds @@ -41,7 +25,7 @@ # Flasks - type: entity - parent: [FlaskBase, DrinkFlaskVisualsOpenable] + parent: [FlaskBase, DrinkVisualsOpenable] id: DrinkShinyFlask name: shiny flask description: A shiny metal flask. It appears to have a Greek symbol inscribed on it. @@ -50,7 +34,7 @@ sprite: Objects/Consumable/Drinks/shinyflask.rsi - type: entity - parent: [FlaskBase, DrinkFlaskVisualsOpenable] + parent: [FlaskBase, DrinkVisualsOpenable] id: DrinkMREFlask suffix: Full name: MRE flask @@ -68,7 +52,7 @@ solution: drink - type: entity - parent: [FlaskBase, DrinkFlaskVisualsOpenable] + parent: [FlaskBase, DrinkVisualsOpenable] id: DrinkDetFlask name: inspector's flask description: A metal flask with a leather band and golden badge belonging to the inspector. @@ -77,7 +61,7 @@ sprite: Objects/Consumable/Drinks/detflask.rsi - type: entity - parent: [FlaskBase, DrinkFlaskVisualsOpenable] + parent: [FlaskBase, DrinkVisualsOpenable] id: DrinkHosFlask name: hos's flask description: A metal flask, fit for a hard working HoS. @@ -86,7 +70,7 @@ sprite: Objects/Consumable/Drinks/hosflask.rsi - type: entity - parent: [FlaskBase, DrinkFlaskVisualsOpenable] + parent: [FlaskBase, DrinkVisualsOpenable] id: DrinkFlask name: captain's flask description: A metal flask belonging to the captain. @@ -95,7 +79,7 @@ sprite: Objects/Consumable/Drinks/flask.rsi - type: entity - parent: [FlaskBase, DrinkFlaskVisualsOpenable] + parent: [FlaskBase, DrinkVisualsOpenable] id: DrinkFlaskBar name: bar flask description: A metal flask often given out by the bartender on loan. Don't forget to return it! @@ -113,7 +97,7 @@ sprite: Objects/Consumable/Drinks/flask_old.rsi - type: entity - parent: [FlaskBase, DrinkFlaskVisualsOpenable] + parent: [FlaskBase, DrinkVisualsOpenable] id: DrinkLithiumFlask name: lithium flask description: A flask with a Lithium Atom symbol on it. @@ -122,10 +106,14 @@ sprite: Objects/Consumable/Drinks/lithiumflask.rsi - type: entity - parent: [FlaskBase, DrinkFlaskVisualsOpenable] + parent: [FlaskBase, DrinkVisualsOpenable] id: DrinkVacuumFlask name: vacuum flask description: Keeping your drinks at the perfect temperature since 1892. components: - type: Sprite sprite: Objects/Consumable/Drinks/vacuumflask.rsi + - type: Tool + qualities: + - Rolling # Perfectly cylindrical flask + speedModifier: 0.75 diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml index 6dd0103914..12e3422e34 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml @@ -60,6 +60,59 @@ - type: Sprite sprite: Objects/Consumable/Drinks/teapot.rsi +- type: entity + id: DrinkCanPack + parent: BaseStorageItem + name: 6pack + components: + - type: Sprite + sprite: Objects/Misc/6pack.rsi + layers: + - state: plastic-thingy + - state: 6pack1 + map: ["6pack1"] + visible: false + - state: 6pack2 + map: ["6pack2"] + visible: false + - state: 6pack3 + map: ["6pack3"] + visible: false + - state: 6pack4 + map: ["6pack4"] + visible: false + - state: 6pack5 + map: ["6pack5"] + visible: false + - state: 6pack6 + map: ["6pack6"] + visible: false + - type: Item + size: Normal + - type: Storage + grid: + - 0,0,2,3 + whitelist: + tags: + - Cola + hideStackVisualsWhenClosed: false + - type: StorageFill + contents: + - id: DrinkColaCan + amount: 6 + - type: ItemCounter + count: + tags: [Cola] + composite: true + layerStates: + - 6pack1 + - 6pack2 + - 6pack3 + - 6pack4 + - 6pack5 + - 6pack6 + - type: Appearance + # Bartender tools - type: entity From 69a404e2913b3991a087b36d9019e2d8f17309ae Mon Sep 17 00:00:00 2001 From: iaada Date: Fri, 25 Jul 2025 20:16:36 -0500 Subject: [PATCH 11/41] atomize --- .../Objects/Consumable/Drinks/drinks_cans.yml | 22 +++ .../Consumable/Drinks/drinks_cans_empty.yml | 177 ------------------ 2 files changed, 22 insertions(+), 177 deletions(-) delete mode 100644 Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans_empty.yml diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml index 8627c703f1..55902897ba 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml @@ -65,6 +65,28 @@ - type: Item sprite: Objects/Consumable/Drinks/cola.rsi +# created when taking apart an ied +- type: entity + parent: [ BaseDrinkOpenableOpen, DrinkColaCan ] + id: DrinkColaCanEmpty + suffix: Empty + components: + - type: SolutionContainerManager + solutions: + drink: + maxVol: 30 + grindable: + reagents: + - ReagentId: Aluminium + Quantity: 4 + - ReagentId: Iron + Quantity: 1 + - type: Tag + tags: + - Cola + - DrinkCan + - Trash + - type: entity parent: DrinkCanBaseFull id: DrinkIcedTeaCan diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans_empty.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans_empty.yml deleted file mode 100644 index e4db6f4365..0000000000 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans_empty.yml +++ /dev/null @@ -1,177 +0,0 @@ -# When adding new drinks also add to random spawner located in Resources/Prototypes/Entities/Markers/Spawners/Random/trash.yml -- type: entity - abstract: true - parent: [ BaseDrinkOpenableOpen, DrinkCanBaseFull ] - id: DrinkCanBaseEmpty - suffix: empty - components: - - type: Sprite - layers: - - state: icon_open - - type: SolutionContainerManager - solutions: - drink: - maxVol: 30 - grindable: - reagents: - - ReagentId: Aluminium - Quantity: 4 - - ReagentId: Iron - Quantity: 1 - - type: Tag - tags: - - DrinkCan - - Trash - -## - -# created when taking apart an ied -- type: entity - parent: [ DrinkCanBaseEmpty, DrinkColaCan ] - id: DrinkColaCanEmpty - name: Space Cola can - description: A sweet, carbonated soft drink. - components: - - type: Tag - tags: - - DrinkCan - - Trash - - Cola - -- type: entity - parent: [ DrinkCanBaseEmpty, DrinkIcedTeaCan ] - id: DrinkIcedTeaCanEmpty - name: iced tea can - description: A refreshing can of iced tea. - -- type: entity - parent: [ DrinkCanBaseEmpty, DrinkLemonLimeCan ] - id: DrinkLemonLimeCanEmpty - name: Smite can - description: You wanted ORANGE. It gave you Lemon-Lime. - -- type: entity - parent: [ DrinkCanBaseEmpty, DrinkLemonLimeCranberryCan ] - id: DrinkLemonLimeCranberryCanEmpty - name: Smite Cranberry can - description: Y'all want a Smite Cranberry? Beloved by administrators everywhere. Drink in moderation. A limited run for the holidays! - -- type: entity - parent: [ DrinkCanBaseEmpty, DrinkGrapeCan ] - id: DrinkGrapeCanEmpty - name: grape soda can - description: Sweetened drink with a grape flavor and a deep purple color. - -- type: entity - 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: - - DrinkCan - - Trash - - Beer - -- type: entity - parent: [ DrinkCanBaseEmpty, DrinkSodaWaterCan ] - id: DrinkSodaWaterCanEmpty - name: soda water can - description: Soda water. Why not make a scotch and soda? - -- type: entity - parent: [ DrinkCanBaseEmpty, DrinkSpaceMountainWindCan ] - id: DrinkSpaceMountainWindCanEmpty - name: Space Solar Wind can - description: Blows right through you like a solar wind. - -- type: entity - parent: [ DrinkCanBaseEmpty, DrinkSpaceUpCan ] - id: DrinkSpaceUpCanEmpty - name: Space-Up can - description: Tastes like a hull breach in your mouth. - -- type: entity - parent: [ DrinkCanBaseEmpty, DrinkSolDryCan ] - id: DrinkSolDryCanEmpty - name: Sol Dry can - description: Sweet ginger soda from outer space! - -- type: entity - parent: [ DrinkCanBaseEmpty, DrinkStarkistCan ] - id: DrinkStarkistCanEmpty - name: Starkist can - description: The taste of a star in liquid form. And, a bit of tuna...? - -- type: entity - parent: [ DrinkCanBaseEmpty, DrinkTonicWaterCan ] - id: DrinkTonicWaterCanEmpty - name: tonic water can - description: Quinine tastes funny, but at least it'll keep that Space Malaria away. - -- type: entity - parent: [ DrinkCanBaseEmpty, DrinkFourteenLokoCan ] - id: DrinkFourteenLokoCanEmpty - name: Fourteen Loko can - description: The MBO has advised crew members that consumption of Fourteen Loko may result in seizures, blindness, drunkeness, or even death. Please Drink Responsibly. - -- type: entity - parent: [ DrinkCanBaseEmpty, DrinkChangelingStingCan ] - id: DrinkChangelingStingCanEmpty - name: Changeling Sting can - description: You take a tiny sip and feel a burning sensation... - -- type: entity - parent: [ DrinkCanBaseEmpty, DrinkDrGibbCan ] - id: DrinkDrGibbCanEmpty - name: Dr. Gibb can - description: A delicious blend of 42 different flavours. - -- type: entity - parent: [ DrinkCanBaseEmpty, DrinkNukieCan ] - id: DrinkNukieCanEmpty - name: Blood-red Brew can - description: A home-brewed drink made from the crazed minds at the Syndicate. Not recommended by doctors. - -- type: entity - parent: [ DrinkCanBaseEmpty, DrinkEnergyDrinkCan ] - id: DrinkEnergyDrinkCanEmpty - name: Red Bool can - description: A can of Red Bool, with enough caffeine to kill a horse. - -- type: entity - parent: [ DrinkCanBaseEmpty, DrinkShamblersJuiceCan ] - id: DrinkShamblersJuiceCanEmpty - name: Shambler's Juice can - description: ~Shake me up some of that Shambler's Juice!~ - -- type: entity - parent: [ DrinkCanBaseEmpty, DrinkPwrGameCan ] - id: DrinkPwrGameCanEmpty - name: PWR Game can - description: The only drink with the PWR that true gamers crave. When a gamer talks about gamerfuel, this is what they're literally referring to. - -- type: entity - parent: [ DrinkCanBaseEmpty, DrinkBeerCan ] - id: DrinkBeerCanEmpty - name: beer can - description: Small joy, big taste, no worries! - components: - - type: Tag - tags: - - DrinkCan - - Trash - - Beer - -- type: entity - parent: [ DrinkCanBaseEmpty, DrinkWineCan ] - id: DrinkWineCanEmpty - name: wine can - description: Your way to forgetting all worries and having fun! - components: - - type: Tag - tags: - - DrinkCan - - Trash - - Wine From 3774b05ca14162d0a2573e19bc1c5d701cb9386f Mon Sep 17 00:00:00 2001 From: iaada Date: Sat, 26 Jul 2025 02:58:28 -0500 Subject: [PATCH 12/41] no commit discipline --- Resources/Prototypes/Damage/modifier_sets.yml | 10 + .../Prototypes/Entities/Debugging/drugs.yml | 2 +- .../Objects/Consumable/Drinks/base_drinks.yml | 230 ------------------ .../Consumable/Drinks/drinks-cartons.yml | 32 +-- .../Objects/Consumable/Drinks/drinks_base.yml | 125 ++++++++++ .../Drinks/drinks_base_materials.yml | 154 ++++++++++++ .../Drinks/drinks_bottles_glass.yml | 27 +- .../Drinks/drinks_bottles_plastic.yml | 55 +++-- .../Objects/Consumable/Drinks/drinks_cans.yml | 5 +- .../Objects/Consumable/Drinks/drinks_cups.yml | 52 ++-- .../Consumable/Drinks/drinks_flasks.yml | 5 +- .../Objects/Consumable/Drinks/drinks_fun.yml | 14 +- .../Consumable/Drinks/drinks_metamorphic.yml | 39 ++- .../Consumable/Drinks/drinks_special.yml | 52 ++-- .../Consumable/Drinks/trash_drinks.yml | 9 +- .../Drinks/cafe_latte.rsi/meta.json | 2 +- 16 files changed, 470 insertions(+), 343 deletions(-) delete mode 100644 Resources/Prototypes/Entities/Objects/Consumable/Drinks/base_drinks.yml create mode 100644 Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml create mode 100644 Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base_materials.yml diff --git a/Resources/Prototypes/Damage/modifier_sets.yml b/Resources/Prototypes/Damage/modifier_sets.yml index 0f023e2470..35a5f49134 100644 --- a/Resources/Prototypes/Damage/modifier_sets.yml +++ b/Resources/Prototypes/Damage/modifier_sets.yml @@ -118,6 +118,16 @@ Heat: 5 Structural: 5 +# Glass without the flat reductions +- type: damageModifierSet + id: FlimsyGlass + coefficients: + Blunt: 1.2 + Slash: 0.5 + Piercing: 1.0 + Heat: 0.8 + Shock: 0 #glass is an insulator! + - type: damageModifierSet id: RGlass coefficients: diff --git a/Resources/Prototypes/Entities/Debugging/drugs.yml b/Resources/Prototypes/Entities/Debugging/drugs.yml index 932fdad2c2..2c222b8905 100644 --- a/Resources/Prototypes/Entities/Debugging/drugs.yml +++ b/Resources/Prototypes/Entities/Debugging/drugs.yml @@ -1,5 +1,5 @@ - type: entity - parent: DrinkGlassBase + parent: [DrinkBase, DrinkGlassBase] id: DrinkMeth name: meth # beer it is. coffee. beer? coff-ee? be-er? c-o... b-e description: Just a whole glass of meth. diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/base_drinks.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/base_drinks.yml deleted file mode 100644 index 8393033718..0000000000 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/base_drinks.yml +++ /dev/null @@ -1,230 +0,0 @@ -# For cups, bottles, beakers, and other freely 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 - -# 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" ] - #In future maybe add generic plastic scrap trash/debris - - type: PhysicalComposition - materialComposition: - Plastic: 25 - -# A destructible, opaque cardboard bottle -- type: entity - abstract: true - parent: DrinkBase - id: DrinkCardboardBase - components: - - type: Damageable - damageContainer: Inorganic - - type: Destructible - thresholds: - - trigger: - !type:DamageTrigger - damage: 5 - behaviors: - - !type:SpillBehavior { } - - !type:DoActsBehavior - acts: [ "Destruction" ] - - type: PhysicalComposition - materialComposition: - Cardboard: 25 - -# A destructible, opaque metal can -- type: entity - abstract: true - parent: DrinkBase - id: DrinkMetalBase - components: - - type: Damageable - damageContainer: Inorganic - damageModifierSet: FlimsyMetallic - - type: Destructible - thresholds: - - trigger: - !type:DamageTrigger - damage: 10 - behaviors: - - !type:SpillBehavior { } - - !type:DoActsBehavior - acts: [ "Destruction" ] - #In future maybe add generic metal scrap trash/debris - - type: PhysicalComposition - materialComposition: - Steel: 25 - -# Un-opened cans and bottles -- type: entity - abstract: true - id: BaseDrinkOpenable - components: - - type: Openable - - type: PressurizedSolution - solution: drink - - type: Shakeable - - type: Sealable - -# Pre-opened cans and bottles -- type: entity - abstract: true - parent: BaseDrinkOpenable - id: BaseDrinkOpenableOpen - components: - - type: Sprite - layers: - - state: icon_open - - type: Openable - opened: true - - type: Sealable - sealed: false - -# 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 - -# Basic visualizer for an openable entity, often paired with BaseDrinkOpenable -- type: entity - abstract: true - id: DrinkVisualsOpenable - components: - - type: Appearance - - type: GenericVisualizer - visuals: - enum.OpenableVisuals.Opened: - enum.OpenableVisuals.Layer: - True: {state: "icon_open"} - False: {state: "icon"} - - type: Sprite - layers: - - state: icon - map: ["enum.OpenableVisuals.Layer"] - -# Visualizer for an openable entity with fill levels -- type: entity - abstract: true - id: DrinkVisualsAll - components: - - type: Appearance - - type: GenericVisualizer - visuals: - enum.OpenableVisuals.Opened: - enum.OpenableVisuals.Layer: - True: {state: "icon_open"} - False: {state: "icon_empty"} - - type: Sprite - sprite: Objects/Consumable/Drinks/alco-bottle.rsi - layers: - - state: icon - map: ["enum.OpenableVisuals.Layer"] - - state: fill-1 - map: ["enum.SolutionContainerLayers.Fill"] - visible: false - - type: SolutionContainerVisuals - maxFillLevels: 5 - fillBaseName: fill- - inHandsMaxFillLevels: 3 - inHandsFillBaseName: -fill- diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks-cartons.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks-cartons.yml index 27bb1dcdb8..5bf736d6cd 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks-cartons.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks-cartons.yml @@ -1,7 +1,7 @@ - type: entity abstract: true - parent: [ DrinkCardboardBase, BaseDrinkOpenable ] - id: DrinkCartonBaseFull + parent: [ DrinkBase, DrinkCardboardBase, DrinkOpenableBase ] + id: DrinkCartonBaseLargeFull suffix: Full components: - type: Openable @@ -13,33 +13,33 @@ - type: SolutionContainerManager solutions: drink: - maxVol: 50 + maxVol: 100 - type: TrashOnSolutionEmpty solution: drink - -- type: entity - abstract: true - parent: DrinkCartonBaseFull - id: DrinkCartonBaseLargeFull - components: - - type: SolutionContainerManager - solutions: - drink: - maxVol: 100 - type: Item size: Normal - type: entity abstract: true - parent: DrinkCartonBaseFull + parent: DrinkCartonBaseLargeFull + id: DrinkCartonBaseFull + components: + - type: SolutionContainerManager + solutions: + drink: + maxVol: 50 + - type: Item + size: Small + +- type: entity + abstract: true + parent: DrinkCartonBaseLargeFull id: DrinkCartonBaseXtraLargeFull components: - type: SolutionContainerManager solutions: drink: maxVol: 150 - - type: Item - size: Normal # Small carton diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml new file mode 100644 index 0000000000..95feee5bde --- /dev/null +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml @@ -0,0 +1,125 @@ +# When adding new drinks also add to random spawner located in Resources\Prototypes\Entities\Markers\Spawners\Random\Food_Drinks\drinks_soda.yml + +# A drink is a freely accessible solution like cups, teapots, cans, flasks, bottles, or beakers. +- 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 + +## Misc + +# This drink is empty trash +- type: entity + abstract: true + id: DrinkEmptyTrashBase + suffix: Empty + components: + - type: SpaceGarbage + - type: TrashOnSolutionEmpty + solution: drink + - type: Tag + tags: + - Trash + +## For drinks with a lid + +# Un-opened +- type: entity + abstract: true + id: DrinkOpenableBase + components: + - type: Openable + - type: PressurizedSolution + solution: drink + - type: Shakeable + - type: Sealable + +# Pre-opened +- type: entity + abstract: true + parent: DrinkOpenableBase + id: DrinkOpenableOpenBase + components: + - type: Sprite + layers: + - state: icon_open + - type: Openable + opened: true + - type: Sealable + sealed: false + +## For visuals + +# Basic visualizer for an openable entity, often paired with BaseDrinkOpenable +- type: entity + abstract: true + id: DrinkVisualsOpenable + components: + - type: Appearance + - type: GenericVisualizer + visuals: + enum.OpenableVisuals.Opened: + enum.OpenableVisuals.Layer: + True: {state: "icon_open"} + False: {state: "icon"} + - type: Sprite + layers: + - state: icon + map: ["enum.OpenableVisuals.Layer"] + +# Visualizer for an openable entity with fill levels +- type: entity + abstract: true + id: DrinkVisualsAll + components: + - type: Appearance + - type: GenericVisualizer + visuals: + enum.OpenableVisuals.Opened: + enum.OpenableVisuals.Layer: + True: {state: "icon_open"} + False: {state: "icon_empty"} + - type: Sprite + sprite: Objects/Consumable/Drinks/alco-bottle.rsi + layers: + - state: icon + map: ["enum.OpenableVisuals.Layer"] + - state: fill-1 + map: ["enum.SolutionContainerLayers.Fill"] + visible: false + - type: SolutionContainerVisuals + maxFillLevels: 5 + fillBaseName: fill- + inHandsMaxFillLevels: 3 + inHandsFillBaseName: -fill- diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base_materials.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base_materials.yml new file mode 100644 index 0000000000..0a9e2d6756 --- /dev/null +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base_materials.yml @@ -0,0 +1,154 @@ +# Material costs to apply to a drink + +# Fragile glass +- type: entity + abstract: true + id: DrinkGlassBase + components: + - type: Damageable + damageContainer: Inorganic + damageModifierSet: FlimsyGlass + - 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" ] + # so fragile it smashes when thrown + - type: DamageOnLand + ignoreResistances: true + damage: + types: + Blunt: 5 + - type: DamageOtherOnHit + damage: + types: + Blunt: 5 + - type: PhysicalComposition + materialComposition: + Glass: 25 + +# Fragile plastic +- type: entity + abstract: true + id: DrinkPlasticBase + components: + - type: Damageable + damageContainer: Inorganic + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 5 + behaviors: +# - !type:PlaySoundBehavior TODO +# sound: + - !type:SpillBehavior { } + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: PhysicalComposition + materialComposition: + Plastic: 25 + +# Fragile cardboard +- type: entity + abstract: true + id: DrinkCardboardBase + components: + - type: Damageable + damageContainer: Inorganic + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 5 + behaviors: +# - !type:PlaySoundBehavior TODO +# sound: + - !type:SpillBehavior { } + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: PhysicalComposition + materialComposition: + Cardboard: 25 + +# Weak metal +- type: entity + abstract: true + id: DrinkMetalBase + components: + - type: Damageable + damageContainer: Inorganic + damageModifierSet: FlimsyMetallic + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 10 + behaviors: +# - !type:PlaySoundBehavior TODO +# sound: + - !type:SpillBehavior { } + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: PhysicalComposition + materialComposition: + Steel: 25 + +# strong metal +- type: entity + abstract: true + id: DrinkStrongMetalBase + components: + - type: Damageable + damageContainer: Inorganic + damageModifierSet: Metallic + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 25 + behaviors: +# - !type:PlaySoundBehavior TODO +# sound: + - !type:SpillBehavior { } + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: PhysicalComposition + materialComposition: + Steel: 300 + +# Weak gold +- type: entity + abstract: true + id: DrinkGoldBase + components: + - type: Damageable + damageContainer: Inorganic + damageModifierSet: FlimsyMetallic + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 10 + behaviors: +# - !type:PlaySoundBehavior TODO +# sound: + - !type:SpillBehavior { } + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: PhysicalComposition + materialComposition: + Gold: 25 diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_glass.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_glass.yml index 61d97558a4..c5bbe7e190 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_glass.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_glass.yml @@ -1,12 +1,13 @@ # 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: [ DrinkGlassBase, BaseDrinkOpenable ] - id: DrinkBottleGlassSmallBaseFull + parent: [ DrinkBase, DrinkGlassBase, DrinkOpenableBase ] + id: DrinkBottleGlassBaseFull suffix: Full components: + - type: Item + size: Normal - type: Openable sound: collection: bottleOpenSounds @@ -16,9 +17,9 @@ - type: SolutionContainerManager solutions: drink: - maxVol: 50 + maxVol: 100 - type: Sprite - sprite: Objects/Consumable/Drinks/beer.rsi # fallback + sprite: Objects/Consumable/Drinks/alco-bottle.rsi # fallback - type: Tool qualities: - Rolling @@ -28,20 +29,24 @@ - type: Tag tags: - DrinkBottle + - type: ExaminableSolution + solution: drink - type: entity abstract: true - parent: DrinkBottleGlassSmallBaseFull - id: DrinkBottleGlassBaseFull + parent: DrinkBottleGlassBaseFull + id: DrinkBottleGlassSmallBaseFull components: - type: SolutionContainerManager solutions: drink: - maxVol: 100 - - type: Sprite - sprite: Objects/Consumable/Drinks/alco-bottle.rsi # fallback + maxVol: 50 - type: Item - size: Normal + size: Small + - type: Sprite + sprite: Objects/Consumable/Drinks/beer.rsi # fallback + - type: FitsInDispenser + solution: drink # Large Glass Bottles diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_plastic.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_plastic.yml index 5e526831d7..9a7402c8b3 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_plastic.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_plastic.yml @@ -1,38 +1,17 @@ - type: entity abstract: true - parent: [ DrinkPlasticBase, BaseDrinkOpenable ] - id: DrinkBottlePlasticSmallBaseFull + parent: [ DrinkBase, DrinkPlasticBase, DrinkOpenableBase ] + id: DrinkBottlePlasticBaseFull suffix: Full components: + - type: Item + size: Normal - type: Openable sound: collection: bottleOpenSounds closeable: true closeSound: collection: bottleCloseSounds - - type: Tag - tags: - - DrinkCup - - type: SolutionContainerManager - solutions: - drink: - maxVol: 30 - - type: FitsInDispenser - solution: drink - - type: Sprite - state: icon - sprite: Objects/Consumable/Drinks/waterbottle.rsi # fallback - - type: TrashOnSolutionEmpty - solution: drink - -- type: entity - abstract: true - parent: DrinkBottlePlasticSmallBaseFull - id: DrinkBottlePlasticBaseFull - components: - - type: Tag - tags: - - DrinkBottle - type: SolutionContainerManager solutions: drink: @@ -40,8 +19,31 @@ - type: Sprite state: icon sprite: Objects/Consumable/Drinks/generic_jug.rsi # fallback to generic plastic jug + - type: TrashOnSolutionEmpty + solution: drink + - type: Tag + tags: + - DrinkCup + +- type: entity + abstract: true + parent: DrinkBottlePlasticBaseFull + id: DrinkBottlePlasticSmallBaseFull + components: - type: Item - size: Normal + size: Small + - type: SolutionContainerManager + solutions: + drink: + maxVol: 30 + - type: Sprite + state: icon + sprite: Objects/Consumable/Drinks/waterbottle.rsi # fallback + - type: Tag + tags: + - DrinkBottle + - type: FitsInDispenser + solution: drink # Empty @@ -182,6 +184,7 @@ # TODO new sprite # Xtra large +# TODO these have too much volume - type: entity parent: [DrinkVisualsOpenable, DrinkBottlePlasticBaseFull] diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml index 55902897ba..82c998a2ea 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml @@ -1,8 +1,9 @@ # 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: [ DrinkMetalBase, BaseDrinkOpenable, DrinkVisualsOpenable ] + parent: [ DrinkBase, DrinkMetalBase, DrinkOpenableBase, DrinkVisualsOpenable ] id: DrinkCanBaseFull + suffix: Full components: - type: SolutionContainerManager solutions: @@ -67,7 +68,7 @@ # created when taking apart an ied - type: entity - parent: [ BaseDrinkOpenableOpen, DrinkColaCan ] + parent: [ DrinkOpenableOpenBase, DrinkColaCan ] id: DrinkColaCanEmpty suffix: Empty components: diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml index a74f61824a..0c0a15f14d 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml @@ -1,5 +1,4 @@ -# 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 +# A cup is a small container used to hold liquids for drinking.[1] - type: entity abstract: true parent: DrinkBase @@ -20,10 +19,13 @@ - type: Tag tags: - DrinkCup + - type: StaticPrice + price: 10 +# A mug is a type of cup.[2] - type: entity abstract: true - parent: DrinkBaseCup + parent: [DrinkBaseCup, DrinkGlassBase] id: DrinkBaseMug name: mug description: A mug. @@ -39,13 +41,13 @@ - type: SolutionContainerVisuals maxFillLevels: 3 fillBaseName: icon- - - type: PhysicalComposition - materialComposition: - Glass: 25 + - type: StaticPrice + price: 10 + +## Misc Cups -# Misc Cups - type: entity - parent: DrinkBaseCup + parent: [DrinkBaseCup, DrinkGoldBase] id: DrinkGoldenCup name: golden cup description: A golden cup. @@ -54,12 +56,9 @@ sprite: Objects/Consumable/Drinks/golden_cup.rsi - type: StaticPrice price: 125 - - type: PhysicalComposition - materialComposition: - Gold: 100 - type: entity - parent: DrinkBaseCup + parent: [DrinkBaseCup, DrinkGlassBase] id: DrinkTeacupEmpty name: teacup description: A plain white porcelain teacup. @@ -79,11 +78,15 @@ fillBaseName: icon- - type: entity - parent: DrinkGlassBase + parent: [ DrinkBase, DrinkGlassBase ] id: DrinkGlassCoupeShaped name: coupe glass description: A classic thin neck coupe glass, the icon of fragile labels on crates around the galaxy. components: + - type: SolutionContainerManager + solutions: + drink: + maxVol: 30 - type: Sprite sprite: Objects/Consumable/Drinks/glass_coupe_shape.rsi layers: @@ -95,22 +98,31 @@ - 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: ExaminableSolution + solution: drink + - type: FitsInDispenser + solution: drink + - type: Tag + tags: + - DrinkGlass - type: entity - parent: DrinkBaseCup + parent: [DrinkBase, DrinkCardboardBase] id: DrinkWaterCup name: water cup description: A paper water cup. components: + - type: SolutionContainerManager + solutions: + drink: + maxVol: 5 # One sip at a time. No rushing at the water cooler + - type: FitsInDispenser + solution: drink - type: Sprite sprite: Objects/Consumable/Drinks/water_cup.rsi layers: @@ -237,6 +249,7 @@ sprite: Objects/Consumable/Drinks/mug_red.rsi ## Filled +# TODO these a material for destruction - type: entity parent: DrinkBaseCup @@ -370,3 +383,6 @@ sprite: Objects/Consumable/Drinks/lean.rsi - type: TrashOnSolutionEmpty solution: drink + +#[1] https://en.wikipedia.org/wiki/Cup +#[2] https://en.wikipedia.org/wiki/Mug diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_flasks.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_flasks.yml index ed623f15ca..b0c4247f4d 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_flasks.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_flasks.yml @@ -1,6 +1,6 @@ - type: entity abstract: true - parent: DrinkBase + parent: [DrinkBase, DrinkOpenableBase, DrinkStrongMetalBase] id: FlaskBase components: - type: SolutionContainerManager @@ -10,9 +10,6 @@ - type: Sprite state: icon sprite: Objects/Consumable/Drinks/flask.rsi - - type: PhysicalComposition - materialComposition: - Steel: 300 - type: FitsInDispenser solution: drink - type: Openable diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_fun.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_fun.yml index e4817febf2..747e079c53 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_fun.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_fun.yml @@ -1,5 +1,5 @@ - type: entity - parent: [DrinkVisualsOpenable, DrinkBase] + parent: [DrinkBase, DrinkPlasticBase, DrinkVisualsOpenable ] id: DrinkSpaceGlue name: space glue tube description: High performance glue intended for maintenance of extremely complex mechanical equipment. DON'T DRINK! @@ -35,7 +35,7 @@ solution: drink - type: entity - parent: [DrinkVisualsOpenable, DrinkBase] + parent: [DrinkBase, DrinkPlasticBase, DrinkVisualsOpenable ] id: DrinkSpaceLube name: space lube tube description: High performance lubricant intended for maintenance of extremely complex mechanical equipment. @@ -90,14 +90,20 @@ Quantity: 200 - type: entity - parent: DrinkGlassBase + parent: [DrinkBase, DrinkGlassBase] id: DrinkJarWhat name: jar of something description: You can't really tell what this is. components: - - type: Drink - type: Sprite sprite: Objects/Consumable/Drinks/jar_what.rsi + - type: ExaminableSolution + solution: drink + - type: FitsInDispenser + solution: drink + - type: Tag + tags: + - DrinkGlass # Mopwata - type: weightedRandomFillSolution diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_metamorphic.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_metamorphic.yml index 6912b2cfa2..7f2b5eb674 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_metamorphic.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_metamorphic.yml @@ -4,10 +4,10 @@ # Transformable container - normal glass - type: entity + parent: [DrinkBase, DrinkGlassBase] + id: DrinkGlass name: metamorphic glass description: A metamorphic glass that automagically turns into a glass appropriate for the drink within. There's a sanded off patent number on the bottom. - parent: DrinkGlassBase - id: DrinkGlass components: - type: Sprite sprite: Objects/Consumable/Drinks/glass_clear.rsi @@ -31,10 +31,17 @@ metamorphicDefaultSprite: sprite: Objects/Consumable/Drinks/glass_clear.rsi state: icon + - type: ExaminableSolution + solution: drink + - type: FitsInDispenser + solution: drink + - type: Tag + tags: + - DrinkGlass - type: TransformableContainer - type: entity - parent: DrinkGlassBase + parent: [DrinkBase, DrinkGlassBase] id: DrinkJar name: jar description: The hipster's cup. @@ -61,9 +68,17 @@ metamorphicDefaultSprite: sprite: Objects/Consumable/Drinks/jar.rsi state: icon + - type: ExaminableSolution + solution: drink + - type: FitsInDispenser + solution: drink + - type: Tag + tags: + - DrinkGlass - type: TransformableContainer ## Filled +# TODO entities without IconComponent need a metamorphic sprite on the reagent - type: entity parent: DrinkGlass @@ -205,6 +220,9 @@ reagents: - ReagentId: Antifreeze Quantity: 30 + - type: Icon + sprite: Objects/Consumable/Drinks/antifreeze.rsi + state: icon - type: entity parent: DrinkGlass @@ -554,6 +572,7 @@ reagents: - ReagentId: CoconutWater Quantity: 30 +#TODO - type: Icon - type: entity parent: DrinkGlass @@ -949,7 +968,7 @@ - ReagentId: GreenTea Quantity: 30 - type: Icon - sprite: Objects/Consumable/Drinks/glass_green.rsi #Placeholder + sprite: Objects/Consumable/Drinks/greenteaglass.rsi state: icon - type: entity @@ -1046,7 +1065,7 @@ - ReagentId: IcedGreenTea Quantity: 30 - type: Icon - sprite: Objects/Consumable/Drinks/glass_green.rsi #Placeholder + sprite: Objects/Consumable/Drinks/icedgreenteaglass.rsi state: icon - type: entity @@ -1317,6 +1336,7 @@ reagents: - ReagentId: JuiceLime Quantity: 30 +#TODO Icon - type: entity parent: DrinkGlass @@ -2254,7 +2274,7 @@ state: icon - type: entity - parent: DrinkGlassBase + parent: DrinkGlass id: DrinkWaterJug name: water jug description: Stay hydrated. @@ -2266,9 +2286,9 @@ reagents: - ReagentId: Water Quantity: 30 - - type: Drink - - type: Sprite + - type: Icon sprite: Objects/Consumable/Drinks/water.rsi + state: icon - type: entity parent: DrinkGlass @@ -2282,6 +2302,9 @@ reagents: - ReagentId: JuiceWatermelon Quantity: 30 + - type: Icon + sprite: Objects/Consumable/Drinks/watermelonglass.rsi + state: icon - type: entity parent: DrinkGlass diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml index 12e3422e34..16cc64c1bd 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml @@ -1,5 +1,5 @@ - type: entity - parent: DrinkGlassBase + parent: [DrinkBase, DrinkGlassBase] id: DrinkShotGlass name: shot glass description: Perfect for slamming down onto the table angrily. @@ -24,6 +24,13 @@ fillBaseName: fill inHandsMaxFillLevels: 1 inHandsFillBaseName: -fill- + - type: ExaminableSolution + solution: drink + - type: FitsInDispenser + solution: drink + - type: Tag + tags: + - DrinkGlass - type: entity parent: DrinkBase @@ -45,7 +52,7 @@ Steel: 75 - type: entity - parent: DrinkGlassBase + parent: [DrinkBase, DrinkGlassBase] id: DrinkTeapot name: teapot # short and stout description: An elegant teapot. It simply oozes class. @@ -59,6 +66,11 @@ Quantity: 100 - type: Sprite sprite: Objects/Consumable/Drinks/teapot.rsi + - type: FitsInDispenser + solution: drink + - type: Tag + tags: + - DrinkGlass - type: entity id: DrinkCanPack @@ -197,51 +209,55 @@ # Weird empty shakes - type: entity - parent: DrinkGlassBase - id: DrinkShakeBlue - name: blue milkshake + abstract: true + parent: [DrinkBase, DrinkGlassBase] + id: DrinkShakeBase description: '' components: - - type: Drink + - type: ExaminableSolution + solution: drink + - type: FitsInDispenser + solution: drink + - type: Tag + tags: + - DrinkGlass + +- type: entity + parent: DrinkShakeBase + id: DrinkShakeBlue + name: blue milkshake + components: - type: Sprite sprite: Objects/Consumable/Drinks/shake-blue.rsi - type: entity - parent: DrinkGlassBase + parent: DrinkShakeBase id: DrinkShakeEmpty name: shakeempty - description: '' components: - - type: Drink - type: Sprite sprite: Objects/Consumable/Drinks/shake-empty.rsi - type: entity - parent: DrinkGlassBase + parent: DrinkShakeBase id: DrinkShakeMeat name: meat shake - description: '' components: - - type: Drink - type: Sprite sprite: Objects/Consumable/Drinks/shake-meat.rsi - type: entity - parent: DrinkGlassBase + parent: DrinkShakeBase id: DrinkShakeRobo name: robo shake - description: '' components: - - type: Drink - type: Sprite sprite: Objects/Consumable/Drinks/shake-robo.rsi - type: entity - parent: DrinkGlassBase + parent: DrinkShakeBase id: DrinkShakeWhite name: white shake - description: '' components: - - type: Drink - type: Sprite sprite: Objects/Consumable/Drinks/shake-white.rsi diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/trash_drinks.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/trash_drinks.yml index 4f7aeeb992..aebe9cf7e0 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/trash_drinks.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/trash_drinks.yml @@ -1,8 +1,9 @@ # File for containers like bottles or milk jugs that are empty +# When used as the first parent, this empties a bottle's reagent and spawns it opened - type: entity abstract: true - parent: [ BaseDrinkOpenableOpen, BaseDrinkEmptyTrash ] + parent: [ DrinkOpenableOpenBase, DrinkEmptyTrashBase ] id: DrinkBottleBaseEmpty components: - type: SolutionContainerManager @@ -16,7 +17,7 @@ - type: entity abstract: true - parent: [ BaseDrinkOpenableOpen, BaseDrinkEmptyTrash ] + parent: [ DrinkOpenableOpenBase, DrinkEmptyTrashBase ] id: DrinkBottleBaseSmallEmpty components: - type: SolutionContainerManager @@ -30,7 +31,7 @@ - type: entity abstract: true - parent: [ BaseDrinkOpenableOpen, BaseDrinkEmptyTrash ] + parent: [ DrinkOpenableOpenBase, DrinkEmptyTrashBase ] id: DrinkCartonBaseEmpty components: - type: SolutionContainerManager @@ -40,7 +41,7 @@ - type: entity abstract: true - parent: [ BaseDrinkOpenableOpen, BaseDrinkEmptyTrash ] + parent: [ DrinkOpenableOpenBase, DrinkEmptyTrashBase ] id: DrinkCartonBaseLargeEmpty components: - type: SolutionContainerManager diff --git a/Resources/Textures/Objects/Consumable/Drinks/cafe_latte.rsi/meta.json b/Resources/Textures/Objects/Consumable/Drinks/cafe_latte.rsi/meta.json index c92d6f1b0e..066f70507d 100644 --- a/Resources/Textures/Objects/Consumable/Drinks/cafe_latte.rsi/meta.json +++ b/Resources/Textures/Objects/Consumable/Drinks/cafe_latte.rsi/meta.json @@ -6,7 +6,7 @@ "y": 32 }, "license": "CC-BY-SA-3.0", - "copyright": "https://github.com/discordia-space/CEV-Eris/raw/f7aa28fd4b4d0386c3393d829681ebca526f1d2d/icons/obj/drinks.dmi. Fill levels by Tayrtahn on GitHub.", + "copyright": "https://github.com/discordia-space/CEV-Eris/raw/f7aa28fd4b4d0386c3393d829681ebca526f1d2d/icons/obj/drinks. Fill levels by Tayrtahn on GitHub.", "states": [ { From 3653fc4460c54891eade1c2364e044699212369d Mon Sep 17 00:00:00 2001 From: iaada Date: Sat, 26 Jul 2025 03:12:30 -0500 Subject: [PATCH 13/41] fixed well enough --- .../Entities/Objects/Consumable/Drinks/drinks-cartons.yml | 3 +++ .../Objects/Consumable/Drinks/drinks_bottles_plastic.yml | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks-cartons.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks-cartons.yml index 5bf736d6cd..449c5f1501 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks-cartons.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks-cartons.yml @@ -40,6 +40,9 @@ solutions: drink: maxVol: 150 + - type: Tag + tags: + - DrinkBottle # Need this to fit in the soda dispenser, probably needs a better name # Small carton diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_plastic.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_plastic.yml index 9a7402c8b3..3cb40a9965 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_plastic.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_plastic.yml @@ -23,7 +23,7 @@ solution: drink - type: Tag tags: - - DrinkCup + - DrinkBottle - type: entity abstract: true From 1c382cfa9839835cdf33a0f8de35b5942bc5f47f Mon Sep 17 00:00:00 2001 From: iaada Date: Sat, 26 Jul 2025 03:30:43 -0500 Subject: [PATCH 14/41] funny damage --- Resources/Prototypes/Damage/modifier_sets.yml | 8 ++++++++ .../Objects/Consumable/Drinks/drinks_base_materials.yml | 2 ++ 2 files changed, 10 insertions(+) diff --git a/Resources/Prototypes/Damage/modifier_sets.yml b/Resources/Prototypes/Damage/modifier_sets.yml index 35a5f49134..cfae9d916a 100644 --- a/Resources/Prototypes/Damage/modifier_sets.yml +++ b/Resources/Prototypes/Damage/modifier_sets.yml @@ -155,6 +155,14 @@ flatReductions: Blunt: 5 +- type: damageModifierSet + id: FlimsyWood # aka Cardboard + coefficients: + Blunt: 0.8 + Slash: 2.0 + Piercing: 0.5 # poking holes in cardboard doesn't do much + Heat: 2.0 + - type: damageModifierSet id: Web # Very flammable, can be easily hacked and slashed, but shooting or hitting it is another story. coefficients: diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base_materials.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base_materials.yml index 0a9e2d6756..6b178107f5 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base_materials.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base_materials.yml @@ -47,6 +47,7 @@ components: - type: Damageable damageContainer: Inorganic +#TODO damageModifierSet: - type: Destructible thresholds: - trigger: @@ -69,6 +70,7 @@ components: - type: Damageable damageContainer: Inorganic + damageModifierSet: FlimsyWood - type: Destructible thresholds: - trigger: From 441f2fea5acec3a27fc4345810abbfe5292f9d31 Mon Sep 17 00:00:00 2001 From: iaada Date: Sat, 26 Jul 2025 03:36:34 -0500 Subject: [PATCH 15/41] overkill threshold --- .../Drinks/drinks_base_materials.yml | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base_materials.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base_materials.yml index 6b178107f5..60af71bafd 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base_materials.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base_materials.yml @@ -10,6 +10,12 @@ damageModifierSet: FlimsyGlass - type: Destructible thresholds: + - trigger: + !type:DamageTrigger # Overkill threshold + damage: 200 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] - trigger: !type:DamageTrigger damage: 5 @@ -50,6 +56,12 @@ #TODO damageModifierSet: - type: Destructible thresholds: + - trigger: + !type:DamageTrigger # Overkill threshold + damage: 200 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] - trigger: !type:DamageTrigger damage: 5 @@ -73,6 +85,12 @@ damageModifierSet: FlimsyWood - type: Destructible thresholds: + - trigger: + !type:DamageTrigger # Overkill threshold + damage: 200 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] - trigger: !type:DamageTrigger damage: 5 @@ -96,6 +114,12 @@ damageModifierSet: FlimsyMetallic - type: Destructible thresholds: + - trigger: + !type:DamageTrigger # Overkill threshold + damage: 200 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] - trigger: !type:DamageTrigger damage: 10 @@ -119,6 +143,12 @@ damageModifierSet: Metallic - type: Destructible thresholds: + - trigger: + !type:DamageTrigger # Overkill threshold + damage: 200 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] - trigger: !type:DamageTrigger damage: 25 @@ -142,6 +172,12 @@ damageModifierSet: FlimsyMetallic - type: Destructible thresholds: + - trigger: + !type:DamageTrigger # Overkill threshold + damage: 200 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] - trigger: !type:DamageTrigger damage: 10 From 0db3df2578a5ae27a649f5324720d4dce6a82d32 Mon Sep 17 00:00:00 2001 From: iaada Date: Sat, 26 Jul 2025 03:45:36 -0500 Subject: [PATCH 16/41] final pass --- .../Entities/Objects/Consumable/Drinks/drinks_cups.yml | 2 +- .../Textures/Objects/Consumable/Drinks/cafe_latte.rsi/meta.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml index 0c0a15f14d..2a8a4127d0 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml @@ -249,7 +249,7 @@ sprite: Objects/Consumable/Drinks/mug_red.rsi ## Filled -# TODO these a material for destruction +# TODO these need a material for destruction, maybe a better parent - type: entity parent: DrinkBaseCup diff --git a/Resources/Textures/Objects/Consumable/Drinks/cafe_latte.rsi/meta.json b/Resources/Textures/Objects/Consumable/Drinks/cafe_latte.rsi/meta.json index 066f70507d..c92d6f1b0e 100644 --- a/Resources/Textures/Objects/Consumable/Drinks/cafe_latte.rsi/meta.json +++ b/Resources/Textures/Objects/Consumable/Drinks/cafe_latte.rsi/meta.json @@ -6,7 +6,7 @@ "y": 32 }, "license": "CC-BY-SA-3.0", - "copyright": "https://github.com/discordia-space/CEV-Eris/raw/f7aa28fd4b4d0386c3393d829681ebca526f1d2d/icons/obj/drinks. Fill levels by Tayrtahn on GitHub.", + "copyright": "https://github.com/discordia-space/CEV-Eris/raw/f7aa28fd4b4d0386c3393d829681ebca526f1d2d/icons/obj/drinks.dmi. Fill levels by Tayrtahn on GitHub.", "states": [ { From 68ccb2881f44661d548d6138064171dfc207adb3 Mon Sep 17 00:00:00 2001 From: iaada Date: Sat, 26 Jul 2025 04:17:55 -0500 Subject: [PATCH 17/41] material arbitrage --- .../Entities/Objects/Consumable/Drinks/drinks_cups.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml index 2a8a4127d0..b0d3eeaa6d 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml @@ -25,7 +25,7 @@ # A mug is a type of cup.[2] - type: entity abstract: true - parent: [DrinkBaseCup, DrinkGlassBase] + parent: DrinkBaseCup, # add DrinkGlassBase after fixing the material arbitrage id: DrinkBaseMug name: mug description: A mug. From bbfefc4df7d222fb91f8446037656099cabe4a12 Mon Sep 17 00:00:00 2001 From: iaada Date: Sat, 26 Jul 2025 04:23:18 -0500 Subject: [PATCH 18/41] typo --- .../Entities/Objects/Consumable/Drinks/drinks_cups.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml index b0d3eeaa6d..7c47dcb91b 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml @@ -25,7 +25,7 @@ # A mug is a type of cup.[2] - type: entity abstract: true - parent: DrinkBaseCup, # add DrinkGlassBase after fixing the material arbitrage + parent: DrinkBaseCup # add DrinkGlassBase after fixing the material arbitrage id: DrinkBaseMug name: mug description: A mug. From 5a65aea6649119a8cf043cf01c771ac59dfcf031 Mon Sep 17 00:00:00 2001 From: iaada Date: Sat, 26 Jul 2025 15:08:10 -0500 Subject: [PATCH 19/41] more sound --- .../Drinks/drinks_base_materials.yml | 26 ++++++++++++------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base_materials.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base_materials.yml index 60af71bafd..ab0c3630f7 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base_materials.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base_materials.yml @@ -1,4 +1,5 @@ # Material costs to apply to a drink +# Adding one of these entities as the first parent will override a previous inherited material # Fragile glass - type: entity @@ -66,8 +67,9 @@ !type:DamageTrigger damage: 5 behaviors: -# - !type:PlaySoundBehavior TODO -# sound: + - !type:PlaySoundBehavior + sound: + collection: MetalCrunch # TODO a plastic break collection - !type:SpillBehavior { } - !type:DoActsBehavior acts: [ "Destruction" ] @@ -95,8 +97,9 @@ !type:DamageTrigger damage: 5 behaviors: -# - !type:PlaySoundBehavior TODO -# sound: + - !type:PlaySoundBehavior + sound: + path: /Audio/Effects/unwrap.ogg # TODO a cardboard destruction collection - !type:SpillBehavior { } - !type:DoActsBehavior acts: [ "Destruction" ] @@ -124,8 +127,9 @@ !type:DamageTrigger damage: 10 behaviors: -# - !type:PlaySoundBehavior TODO -# sound: + - !type:PlaySoundBehavior + sound: + collection: MetalCrunch # TODO a flimsier metal break collection - !type:SpillBehavior { } - !type:DoActsBehavior acts: [ "Destruction" ] @@ -153,8 +157,9 @@ !type:DamageTrigger damage: 25 behaviors: -# - !type:PlaySoundBehavior TODO -# sound: + - !type:PlaySoundBehavior + sound: + collection: MetalCrunch - !type:SpillBehavior { } - !type:DoActsBehavior acts: [ "Destruction" ] @@ -182,8 +187,9 @@ !type:DamageTrigger damage: 10 behaviors: -# - !type:PlaySoundBehavior TODO -# sound: + - !type:PlaySoundBehavior + sound: + collection: MetalBreak # Could use a shinier sound - !type:SpillBehavior { } - !type:DoActsBehavior acts: [ "Destruction" ] From 4d3e3c7a4f9da1322200e9826dc63b8b0df5e5a0 Mon Sep 17 00:00:00 2001 From: iaada Date: Sun, 27 Jul 2025 14:14:47 -0500 Subject: [PATCH 20/41] rename the bases, more destruction --- .../Consumable/Drinks/drinks-cartons.yml | 2 +- .../Objects/Consumable/Drinks/drinks_base.yml | 6 +-- .../Drinks/drinks_base_materials.yml | 51 ++++++++++++++++--- .../Drinks/drinks_bottles_glass.yml | 2 +- .../Drinks/drinks_bottles_plastic.yml | 2 +- .../Objects/Consumable/Drinks/drinks_cans.yml | 2 +- .../Objects/Consumable/Drinks/drinks_cups.yml | 26 ++++------ .../Consumable/Drinks/drinks_flasks.yml | 2 +- .../Objects/Consumable/Drinks/drinks_fun.yml | 6 +-- .../Consumable/Drinks/drinks_metamorphic.yml | 4 +- .../Consumable/Drinks/drinks_special.yml | 8 +-- .../Consumable/Drinks/trash_drinks.yml | 10 ++-- 12 files changed, 77 insertions(+), 44 deletions(-) diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks-cartons.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks-cartons.yml index 449c5f1501..ee2f4411df 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks-cartons.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks-cartons.yml @@ -1,6 +1,6 @@ - type: entity abstract: true - parent: [ DrinkBase, DrinkCardboardBase, DrinkOpenableBase ] + parent: [ DrinkBase, DrinkBaseCardboard, DrinkBaseOpenable ] id: DrinkCartonBaseLargeFull suffix: Full components: diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml index 95feee5bde..d55e28453b 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml @@ -42,7 +42,7 @@ # This drink is empty trash - type: entity abstract: true - id: DrinkEmptyTrashBase + id: DrinkBaseEmptyTrash suffix: Empty components: - type: SpaceGarbage @@ -57,7 +57,7 @@ # Un-opened - type: entity abstract: true - id: DrinkOpenableBase + id: DrinkBaseOpenable components: - type: Openable - type: PressurizedSolution @@ -69,7 +69,7 @@ - type: entity abstract: true parent: DrinkOpenableBase - id: DrinkOpenableOpenBase + id: DrinkBaseOpenableOpen components: - type: Sprite layers: diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base_materials.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base_materials.yml index ab0c3630f7..a4283f6cb5 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base_materials.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base_materials.yml @@ -4,7 +4,7 @@ # Fragile glass - type: entity abstract: true - id: DrinkGlassBase + id: DrinkBaseGlass components: - type: Damageable damageContainer: Inorganic @@ -47,10 +47,49 @@ materialComposition: Glass: 25 +# Porcelain (like glass but no shard) +- type: entity + abstract: true + id: DrinkBasePorcelain + components: + - type: Damageable + damageContainer: Inorganic + damageModifierSet: FlimsyGlass + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger # Overkill threshold + damage: 200 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - trigger: + !type:DamageTrigger + damage: 5 + behaviors: + - !type:PlaySoundBehavior + sound: + collection: GlassCrack + - !type:SpillBehavior { } + - !type:DoActsBehavior + acts: [ "Destruction" ] + # so fragile it smashes when thrown + - type: DamageOnLand + ignoreResistances: true + damage: + types: + Blunt: 5 + - type: DamageOtherOnHit + damage: + types: + Blunt: 5 + - type: PhysicalComposition + materialComposition: [] # To override previous compositions and get recycled + # Fragile plastic - type: entity abstract: true - id: DrinkPlasticBase + id: DrinkBasePlastic components: - type: Damageable damageContainer: Inorganic @@ -80,7 +119,7 @@ # Fragile cardboard - type: entity abstract: true - id: DrinkCardboardBase + id: DrinkBaseCardboard components: - type: Damageable damageContainer: Inorganic @@ -110,7 +149,7 @@ # Weak metal - type: entity abstract: true - id: DrinkMetalBase + id: DrinkBaseMetal components: - type: Damageable damageContainer: Inorganic @@ -140,7 +179,7 @@ # strong metal - type: entity abstract: true - id: DrinkStrongMetalBase + id: DrinkBaseStrongMetal components: - type: Damageable damageContainer: Inorganic @@ -170,7 +209,7 @@ # Weak gold - type: entity abstract: true - id: DrinkGoldBase + id: DrinkBaseGold components: - type: Damageable damageContainer: Inorganic diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_glass.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_glass.yml index c5bbe7e190..7545827275 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_glass.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_glass.yml @@ -2,7 +2,7 @@ - type: entity abstract: true - parent: [ DrinkBase, DrinkGlassBase, DrinkOpenableBase ] + parent: [ DrinkBase, DrinkBaseGlass, DrinkBaseOpenable ] id: DrinkBottleGlassBaseFull suffix: Full components: diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_plastic.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_plastic.yml index 3cb40a9965..7ec62371d9 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_plastic.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_plastic.yml @@ -1,6 +1,6 @@ - type: entity abstract: true - parent: [ DrinkBase, DrinkPlasticBase, DrinkOpenableBase ] + parent: [ DrinkBase, DrinkBasePlastic, DrinkBaseOpenable ] id: DrinkBottlePlasticBaseFull suffix: Full components: diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml index 82c998a2ea..a8f9f9ce05 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml @@ -1,7 +1,7 @@ # 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: [ DrinkBase, DrinkMetalBase, DrinkOpenableBase, DrinkVisualsOpenable ] + parent: [ DrinkBase, DrinkBaseMetal, DrinkBaseOpenable, DrinkVisualsOpenable ] id: DrinkCanBaseFull suffix: Full components: diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml index 7c47dcb91b..24548a355a 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml @@ -3,7 +3,6 @@ abstract: true parent: DrinkBase id: DrinkBaseCup - name: base cup components: - type: SolutionContainerManager solutions: @@ -25,7 +24,7 @@ # A mug is a type of cup.[2] - type: entity abstract: true - parent: DrinkBaseCup # add DrinkGlassBase after fixing the material arbitrage + parent: [DrinkBaseCup, DrinkBasePorcelain] id: DrinkBaseMug name: mug description: A mug. @@ -47,7 +46,7 @@ ## Misc Cups - type: entity - parent: [DrinkBaseCup, DrinkGoldBase] + parent: [DrinkBaseCup, DrinkBaseGold] id: DrinkGoldenCup name: golden cup description: A golden cup. @@ -58,7 +57,7 @@ price: 125 - type: entity - parent: [DrinkBaseCup, DrinkGlassBase] + parent: [DrinkBaseCup, DrinkBasePorcelain] id: DrinkTeacupEmpty name: teacup description: A plain white porcelain teacup. @@ -78,7 +77,7 @@ fillBaseName: icon- - type: entity - parent: [ DrinkBase, DrinkGlassBase ] + parent: [ DrinkBase, DrinkBaseGlass ] id: DrinkGlassCoupeShaped name: coupe glass description: A classic thin neck coupe glass, the icon of fragile labels on crates around the galaxy. @@ -112,7 +111,7 @@ - DrinkGlass - type: entity - parent: [DrinkBase, DrinkCardboardBase] + parent: [DrinkBase, DrinkBaseCardboard] id: DrinkWaterCup name: water cup description: A paper water cup. @@ -201,16 +200,13 @@ sprite: Objects/Consumable/Drinks/mug_heart.rsi - type: entity - parent: DrinkBaseMug + parent: [DrinkBaseMetal, DrinkBaseMug] id: DrinkMugMetal name: metal mug description: A metal mug. You're not sure which metal. components: - type: Sprite sprite: Objects/Consumable/Drinks/mug_metal.rsi - - type: PhysicalComposition - materialComposition: - Steel: 25 - type: entity parent: DrinkBaseMug @@ -252,7 +248,7 @@ # TODO these need a material for destruction, maybe a better parent - type: entity - parent: DrinkBaseCup + parent: DrinkBaseMug id: DrinkHotCoco name: hot chocolate description: A heated drink consisting melted chocolate and heated milk. @@ -272,7 +268,6 @@ - state: icon-0 - map: ["enum.SolutionContainerLayers.Fill"] state: icon-4 - - type: Appearance - type: SolutionContainerVisuals maxFillLevels: 4 fillBaseName: icon- @@ -280,7 +275,7 @@ solution: drink - type: entity - parent: DrinkBaseCup + parent: DrinkBaseMug id: DrinkHotCoffee name: coffee description: Coffee is a brewed drink prepared from roasted seeds, commonly called coffee beans, of the coffee plant. @@ -300,7 +295,6 @@ - state: icon-0 - map: ["enum.SolutionContainerLayers.Fill"] state: icon-4 - - type: Appearance - type: SolutionContainerVisuals maxFillLevels: 4 fillBaseName: icon- @@ -308,7 +302,7 @@ solution: drink - type: entity - parent: DrinkBaseCup + parent: [DrinkBaseCup, DrinkBaseCardboard] id: DrinkCafeLatte name: cafe latte description: A nice, strong and tasty beverage while you are reading. @@ -365,7 +359,7 @@ solution: drink - type: entity - parent: DrinkBaseCup + parent: [DrinkBaseCup, DrinkBasePlastic] id: DrinkLean name: grape juice description: Damn, no fun allowed. diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_flasks.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_flasks.yml index b0c4247f4d..b15a56747a 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_flasks.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_flasks.yml @@ -1,6 +1,6 @@ - type: entity abstract: true - parent: [DrinkBase, DrinkOpenableBase, DrinkStrongMetalBase] + parent: [DrinkBase, DrinkBaseStrongMetal, DrinkBaseOpenable] id: FlaskBase components: - type: SolutionContainerManager diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_fun.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_fun.yml index 747e079c53..5be5b615f8 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_fun.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_fun.yml @@ -1,5 +1,5 @@ - type: entity - parent: [DrinkBase, DrinkPlasticBase, DrinkVisualsOpenable ] + parent: [DrinkBase, DrinkBasePlastic, DrinkBaseOpenable, DrinkVisualsOpenable ] id: DrinkSpaceGlue name: space glue tube description: High performance glue intended for maintenance of extremely complex mechanical equipment. DON'T DRINK! @@ -35,7 +35,7 @@ solution: drink - type: entity - parent: [DrinkBase, DrinkPlasticBase, DrinkVisualsOpenable ] + parent: [DrinkBase, DrinkBasePlastic, DrinkBaseOpenable, DrinkVisualsOpenable ] id: DrinkSpaceLube name: space lube tube description: High performance lubricant intended for maintenance of extremely complex mechanical equipment. @@ -90,7 +90,7 @@ Quantity: 200 - type: entity - parent: [DrinkBase, DrinkGlassBase] + parent: [DrinkBase, DrinkBaseGlass] id: DrinkJarWhat name: jar of something description: You can't really tell what this is. diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_metamorphic.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_metamorphic.yml index 7f2b5eb674..e0ab21e40e 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_metamorphic.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_metamorphic.yml @@ -4,7 +4,7 @@ # Transformable container - normal glass - type: entity - parent: [DrinkBase, DrinkGlassBase] + parent: [DrinkBase, DrinkBaseGlass] id: DrinkGlass name: metamorphic glass description: A metamorphic glass that automagically turns into a glass appropriate for the drink within. There's a sanded off patent number on the bottom. @@ -41,7 +41,7 @@ - type: TransformableContainer - type: entity - parent: [DrinkBase, DrinkGlassBase] + parent: [DrinkBase, DrinkBaseGlass] id: DrinkJar name: jar description: The hipster's cup. diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml index 16cc64c1bd..e3d830cf80 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml @@ -1,5 +1,5 @@ - type: entity - parent: [DrinkBase, DrinkGlassBase] + parent: [DrinkBase, DrinkBaseGlass] id: DrinkShotGlass name: shot glass description: Perfect for slamming down onto the table angrily. @@ -52,7 +52,7 @@ Steel: 75 - type: entity - parent: [DrinkBase, DrinkGlassBase] + parent: [DrinkBase, DrinkBasePorcelain] id: DrinkTeapot name: teapot # short and stout description: An elegant teapot. It simply oozes class. @@ -73,8 +73,8 @@ - DrinkGlass - type: entity - id: DrinkCanPack parent: BaseStorageItem + id: DrinkCanPack name: 6pack components: - type: Sprite @@ -210,7 +210,7 @@ - type: entity abstract: true - parent: [DrinkBase, DrinkGlassBase] + parent: [DrinkBase, DrinkBaseGlass] id: DrinkShakeBase description: '' components: diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/trash_drinks.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/trash_drinks.yml index aebe9cf7e0..8ea6bd9b28 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/trash_drinks.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/trash_drinks.yml @@ -1,9 +1,9 @@ # File for containers like bottles or milk jugs that are empty -# When used as the first parent, this empties a bottle's reagent and spawns it opened +# When used as the first parent, this empties a bottle's reagent and spawns it already opened - type: entity abstract: true - parent: [ DrinkOpenableOpenBase, DrinkEmptyTrashBase ] + parent: [ DrinkBaseOpenableOpen, DrinkBaseEmptyTrash ] id: DrinkBottleBaseEmpty components: - type: SolutionContainerManager @@ -17,7 +17,7 @@ - type: entity abstract: true - parent: [ DrinkOpenableOpenBase, DrinkEmptyTrashBase ] + parent: [ DrinkBaseOpenableOpen, DrinkBaseEmptyTrash ] id: DrinkBottleBaseSmallEmpty components: - type: SolutionContainerManager @@ -31,7 +31,7 @@ - type: entity abstract: true - parent: [ DrinkOpenableOpenBase, DrinkEmptyTrashBase ] + parent: [ DrinkBaseOpenableOpen, DrinkBaseEmptyTrash ] id: DrinkCartonBaseEmpty components: - type: SolutionContainerManager @@ -41,7 +41,7 @@ - type: entity abstract: true - parent: [ DrinkOpenableOpenBase, DrinkEmptyTrashBase ] + parent: [ DrinkBaseOpenableOpen, DrinkBaseEmptyTrash ] id: DrinkCartonBaseLargeEmpty components: - type: SolutionContainerManager From d0a57fa214be7cb107df22cb61da1bf1d7a1a3a2 Mon Sep 17 00:00:00 2001 From: iaada Date: Sun, 27 Jul 2025 14:27:02 -0500 Subject: [PATCH 21/41] lint errors --- Resources/Prototypes/Entities/Debugging/drugs.yml | 2 +- .../Entities/Objects/Consumable/Drinks/drinks_base.yml | 2 +- .../Objects/Consumable/Drinks/drinks_base_materials.yml | 5 +++-- .../Entities/Objects/Consumable/Drinks/drinks_cans.yml | 2 +- .../Entities/Objects/Consumable/Drinks/drinks_cups.yml | 8 +++++--- .../Entities/Objects/Consumable/Drinks/drinks_special.yml | 3 --- 6 files changed, 11 insertions(+), 11 deletions(-) diff --git a/Resources/Prototypes/Entities/Debugging/drugs.yml b/Resources/Prototypes/Entities/Debugging/drugs.yml index 2c222b8905..c9e072a14d 100644 --- a/Resources/Prototypes/Entities/Debugging/drugs.yml +++ b/Resources/Prototypes/Entities/Debugging/drugs.yml @@ -1,5 +1,5 @@ - type: entity - parent: [DrinkBase, DrinkGlassBase] + parent: [DrinkBase, DrinkBaseGlass] id: DrinkMeth name: meth # beer it is. coffee. beer? coff-ee? be-er? c-o... b-e description: Just a whole glass of meth. diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml index d55e28453b..b79346321c 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml @@ -68,7 +68,7 @@ # Pre-opened - type: entity abstract: true - parent: DrinkOpenableBase + parent: DrinkBaseOpenable id: DrinkBaseOpenableOpen components: - type: Sprite diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base_materials.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base_materials.yml index a4283f6cb5..1415345312 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base_materials.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base_materials.yml @@ -83,8 +83,9 @@ damage: types: Blunt: 5 - - type: PhysicalComposition - materialComposition: [] # To override previous compositions and get recycled + - type: Tag + tags: + - Recyclable # Fragile plastic - type: entity diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml index a8f9f9ce05..d63636b79e 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml @@ -68,7 +68,7 @@ # created when taking apart an ied - type: entity - parent: [ DrinkOpenableOpenBase, DrinkColaCan ] + parent: [ DrinkBaseOpenableOpen, DrinkColaCan ] id: DrinkColaCanEmpty suffix: Empty components: diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml index 24548a355a..923d8670a3 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml @@ -42,6 +42,9 @@ fillBaseName: icon- - type: StaticPrice price: 10 + - type: Tag + tags: + - DrinkCup ## Misc Cups @@ -57,7 +60,7 @@ price: 125 - type: entity - parent: [DrinkBaseCup, DrinkBasePorcelain] + parent: DrinkBaseMug id: DrinkTeacupEmpty name: teacup description: A plain white porcelain teacup. @@ -71,10 +74,8 @@ - state: icon-0 - map: ["enum.SolutionContainerLayers.Fill"] state: icon-4 - - type: Appearance - type: SolutionContainerVisuals maxFillLevels: 4 - fillBaseName: icon- - type: entity parent: [ DrinkBase, DrinkBaseGlass ] @@ -109,6 +110,7 @@ - type: Tag tags: - DrinkGlass + - Recyclable - type: entity parent: [DrinkBase, DrinkBaseCardboard] diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml index e3d830cf80..ceea309474 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml @@ -68,9 +68,6 @@ sprite: Objects/Consumable/Drinks/teapot.rsi - type: FitsInDispenser solution: drink - - type: Tag - tags: - - DrinkGlass - type: entity parent: BaseStorageItem From 9a09a9fbfa3d9f4baf0bfae5f205ef3004bf77f0 Mon Sep 17 00:00:00 2001 From: iaada Date: Sun, 27 Jul 2025 19:03:30 -0500 Subject: [PATCH 22/41] Another quality pass. More descriptive name for base types and give everything a material base. --- .../Catalog/Fills/Lockers/service.yml | 2 +- .../Prototypes/Entities/Debugging/drugs.yml | 2 +- .../Consumable/Drinks/drinks-cartons.yml | 2 +- .../Objects/Consumable/Drinks/drinks_base.yml | 18 ++++- .../Drinks/drinks_base_materials.yml | 81 +++++++++++++++---- .../Drinks/drinks_bottles_glass.yml | 56 +++++++------ .../Drinks/drinks_bottles_plastic.yml | 14 ++-- .../Objects/Consumable/Drinks/drinks_cans.yml | 2 +- .../Objects/Consumable/Drinks/drinks_cups.yml | 43 +++++----- .../Consumable/Drinks/drinks_flasks.yml | 5 +- .../Objects/Consumable/Drinks/drinks_fun.yml | 18 ++--- .../Consumable/Drinks/drinks_metamorphic.yml | 22 ++--- .../Consumable/Drinks/drinks_special.yml | 21 ++--- 13 files changed, 167 insertions(+), 119 deletions(-) diff --git a/Resources/Prototypes/Catalog/Fills/Lockers/service.yml b/Resources/Prototypes/Catalog/Fills/Lockers/service.yml index 85bd52e13d..e486545ce3 100644 --- a/Resources/Prototypes/Catalog/Fills/Lockers/service.yml +++ b/Resources/Prototypes/Catalog/Fills/Lockers/service.yml @@ -17,7 +17,7 @@ - id: DrinkShaker - id: ClothingEyesHudBeer - id: HandLabeler - - id: DrinkBottleBeer + - id: DrinkBeerBottleFull amount: !type:BinomialNumberSelector trials: 3 - !type:AllSelector diff --git a/Resources/Prototypes/Entities/Debugging/drugs.yml b/Resources/Prototypes/Entities/Debugging/drugs.yml index c9e072a14d..473e370625 100644 --- a/Resources/Prototypes/Entities/Debugging/drugs.yml +++ b/Resources/Prototypes/Entities/Debugging/drugs.yml @@ -1,5 +1,5 @@ - type: entity - parent: [DrinkBase, DrinkBaseGlass] + parent: [DrinkBase, DrinkBaseMaterialGlass] id: DrinkMeth name: meth # beer it is. coffee. beer? coff-ee? be-er? c-o... b-e description: Just a whole glass of meth. diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks-cartons.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks-cartons.yml index ee2f4411df..ab7d0c1e30 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks-cartons.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks-cartons.yml @@ -1,6 +1,6 @@ - type: entity abstract: true - parent: [ DrinkBase, DrinkBaseCardboard, DrinkBaseOpenable ] + parent: [ DrinkBase, DrinkBaseMaterialCardboard, DrinkBaseOpenable ] id: DrinkCartonBaseLargeFull suffix: Full components: diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml index b79346321c..65befafd08 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml @@ -1,6 +1,6 @@ -# When adding new drinks also add to random spawner located in Resources\Prototypes\Entities\Markers\Spawners\Random\Food_Drinks\drinks_soda.yml +# When adding new drinks also add to random spawner located in Resources\Prototypes\Entities\Markers\Spawners\Random\Food_Drinks\ -# A drink is a freely accessible solution like cups, teapots, cans, flasks, bottles, or beakers. +# A drink is an easily and freely accessible solution like cups, teapots, cans, flasks, bottles, or beakers. - type: entity abstract: true parent: BaseItem @@ -111,7 +111,6 @@ True: {state: "icon_open"} False: {state: "icon_empty"} - type: Sprite - sprite: Objects/Consumable/Drinks/alco-bottle.rsi layers: - state: icon map: ["enum.OpenableVisuals.Layer"] @@ -123,3 +122,16 @@ fillBaseName: fill- inHandsMaxFillLevels: 3 inHandsFillBaseName: -fill- + +# Visualizer for an openable entity with fill levels, already filled +- type: entity + abstract: true + parent: DrinkVisualsAll + id: DrinkVisualsAllFilled + components: + - type: Sprite + layers: + - state: icon + map: ["enum.OpenableVisuals.Layer"] + - state: fill-5 # this will need to be different with a different maxFillLevels + map: ["enum.SolutionContainerLayers.Fill"] diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base_materials.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base_materials.yml index 1415345312..d09df66b4c 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base_materials.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base_materials.yml @@ -1,10 +1,10 @@ # Material costs to apply to a drink -# Adding one of these entities as the first parent will override a previous inherited material +# Adding one of these bases as the first parent will override a previous inherited material # Fragile glass - type: entity abstract: true - id: DrinkBaseGlass + id: DrinkBaseMaterialGlass components: - type: Damageable damageContainer: Inorganic @@ -33,12 +33,11 @@ transferForensics: true - !type:DoActsBehavior acts: [ "Destruction" ] - # so fragile it smashes when thrown - type: DamageOnLand ignoreResistances: true damage: types: - Blunt: 5 + Blunt: 5 # so fragile it smashes when thrown - type: DamageOtherOnHit damage: types: @@ -50,7 +49,7 @@ # Porcelain (like glass but no shard) - type: entity abstract: true - id: DrinkBasePorcelain + id: DrinkBaseMaterialPorcelain components: - type: Damageable damageContainer: Inorganic @@ -73,24 +72,23 @@ - !type:SpillBehavior { } - !type:DoActsBehavior acts: [ "Destruction" ] - # so fragile it smashes when thrown - type: DamageOnLand ignoreResistances: true damage: types: - Blunt: 5 + Blunt: 5 # so fragile it smashes when thrown - type: DamageOtherOnHit damage: types: Blunt: 5 - - type: Tag - tags: - - Recyclable + - type: PhysicalComposition + materialComposition: + Glass: 10 # Trace amounts of glass I guess. Important for overriding inheritance # Fragile plastic - type: entity abstract: true - id: DrinkBasePlastic + id: DrinkBaseMaterialPlastic components: - type: Damageable damageContainer: Inorganic @@ -113,6 +111,15 @@ - !type:SpillBehavior { } - !type:DoActsBehavior acts: [ "Destruction" ] + - type: DamageOnLand + ignoreResistances: true + damage: + types: + Blunt: 1 + - type: DamageOtherOnHit + damage: + types: + Blunt: 2 - type: PhysicalComposition materialComposition: Plastic: 25 @@ -120,7 +127,7 @@ # Fragile cardboard - type: entity abstract: true - id: DrinkBaseCardboard + id: DrinkBaseMaterialCardboard components: - type: Damageable damageContainer: Inorganic @@ -143,6 +150,15 @@ - !type:SpillBehavior { } - !type:DoActsBehavior acts: [ "Destruction" ] + - type: DamageOnLand + ignoreResistances: true + damage: + types: + Blunt: 1 + - type: DamageOtherOnHit + damage: + types: + Blunt: 1 - type: PhysicalComposition materialComposition: Cardboard: 25 @@ -150,7 +166,7 @@ # Weak metal - type: entity abstract: true - id: DrinkBaseMetal + id: DrinkBaseMaterialMetal components: - type: Damageable damageContainer: Inorganic @@ -173,6 +189,15 @@ - !type:SpillBehavior { } - !type:DoActsBehavior acts: [ "Destruction" ] + - type: DamageOnLand + ignoreResistances: true + damage: + types: + Blunt: 1 + - type: DamageOtherOnHit + damage: + types: + Blunt: 5 - type: PhysicalComposition materialComposition: Steel: 25 @@ -180,7 +205,7 @@ # strong metal - type: entity abstract: true - id: DrinkBaseStrongMetal + id: DrinkBaseMaterialStrongMetal components: - type: Damageable damageContainer: Inorganic @@ -203,6 +228,15 @@ - !type:SpillBehavior { } - !type:DoActsBehavior acts: [ "Destruction" ] + - type: DamageOnLand + ignoreResistances: true + damage: + types: + Blunt: 1 + - type: DamageOtherOnHit + damage: + types: + Blunt: 5 - type: PhysicalComposition materialComposition: Steel: 300 @@ -210,7 +244,7 @@ # Weak gold - type: entity abstract: true - id: DrinkBaseGold + id: DrinkBaseMaterialGold components: - type: Damageable damageContainer: Inorganic @@ -225,14 +259,29 @@ acts: [ "Destruction" ] - trigger: !type:DamageTrigger - damage: 10 + damage: 10 # Gold is very weak behaviors: - !type:PlaySoundBehavior sound: collection: MetalBreak # Could use a shinier sound - !type:SpillBehavior { } + - !type:SpawnEntitiesBehavior + spawn: + IngotGold1: + min: 1 + max: 1 + transferForensics: true - !type:DoActsBehavior acts: [ "Destruction" ] + - type: DamageOnLand + ignoreResistances: true + damage: + types: + Blunt: 5 # Don't drop your fancy golden cup! + - type: DamageOtherOnHit + damage: + types: + Blunt: 2 - type: PhysicalComposition materialComposition: Gold: 25 diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_glass.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_glass.yml index 7545827275..fa0cd1692c 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_glass.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_glass.yml @@ -2,7 +2,7 @@ - type: entity abstract: true - parent: [ DrinkBase, DrinkBaseGlass, DrinkBaseOpenable ] + parent: [ DrinkBase, DrinkBaseMaterialGlass, DrinkBaseOpenable ] id: DrinkBottleGlassBaseFull suffix: Full components: @@ -51,7 +51,7 @@ # Large Glass Bottles - type: entity - parent: [DrinkVisualsAll, DrinkBottleGlassBaseFull] + parent: [DrinkVisualsAllFilled, DrinkBottleGlassBaseFull] id: DrinkAbsintheBottleFull name: Jailbreaker Verte description: One sip of this and you just know you're gonna have a good time. @@ -68,7 +68,7 @@ sprite: Objects/Consumable/Drinks/absinthebottle.rsi - type: entity - parent: [DrinkVisualsAll, DrinkBottleGlassBaseFull] + parent: [DrinkVisualsAllFilled, DrinkBottleGlassBaseFull] id: DrinkBlueCuracaoBottleFull name: Miss Blue Curaçao description: A fruity, exceptionally azure drink. Does not allow the imbiber to use the fifth magic. @@ -86,9 +86,8 @@ layers: - state: icon_blue map: ["enum.OpenableVisuals.Layer"] - - state: fill-1 + - state: fill-6 map: ["enum.SolutionContainerLayers.Fill"] - visible: false - type: SolutionContainerVisuals maxFillLevels: 6 fillBaseName: fill- @@ -132,7 +131,7 @@ examineTextUnsealed: drink-component-on-examine-is-unsealed-no-cork # tell the player why it can't close - type: entity - parent: [DrinkVisualsAll, DrinkBottleGlassBaseFull] + parent: [DrinkVisualsAllFilled, DrinkBottleGlassBaseFull] id: DrinkCognacBottleFull name: cognac bottle description: A sweet and strongly alcoholic drink, made after numerous distillations and years of maturing. You might as well not scream 'SHITCURITY' this time. @@ -149,7 +148,7 @@ sprite: Objects/Consumable/Drinks/cognacbottle.rsi - type: entity - parent: [DrinkVisualsAll, DrinkBottleGlassBaseFull] + parent: [DrinkVisualsAllFilled, DrinkBottleGlassBaseFull] id: DrinkGrenadineBottleFull name: Briar Rose grenadine syrup bottle description: Sweet and tangy, a bar syrup used to add color or flavor to drinks. @@ -164,11 +163,16 @@ currentLabel: reagent-name-grenadine - type: Sprite sprite: Objects/Consumable/Drinks/grenadinebottle.rsi + layers: + - state: icon + map: ["enum.OpenableVisuals.Layer"] + - state: fill-6 + map: ["enum.SolutionContainerLayers.Fill"] - type: SolutionContainerVisuals maxFillLevels: 6 - type: entity - parent: [DrinkVisualsAll, DrinkBottleGlassBaseFull] + parent: [DrinkVisualsAllFilled, DrinkBottleGlassBaseFull] id: DrinkGinBottleFull name: Griffeater gin description: A bottle of high quality gin, produced in the New London Space Station. @@ -185,7 +189,7 @@ sprite: Objects/Consumable/Drinks/ginbottle.rsi - type: entity - parent: [DrinkVisualsAll, DrinkBottleGlassBaseFull] + parent: [DrinkVisualsAllFilled, DrinkBottleGlassBaseFull] id: DrinkGildlagerBottleFull name: Gildlager bottle description: 100 proof cinnamon schnapps, made for alcoholic teen girls on spring break. @@ -219,7 +223,7 @@ sprite: Objects/Consumable/Drinks/coffeeliqueurbottle.rsi - type: entity - parent: [DrinkVisualsAll, DrinkBottleGlassBaseFull] + parent: [DrinkVisualsAllFilled, DrinkBottleGlassBaseFull] id: DrinkMelonLiquorBottleFull name: Emeraldine melon liquor description: A bottle of 46 proof Emeraldine melon liquor. Sweet and light. @@ -237,15 +241,14 @@ layers: - state: icon_green map: ["enum.OpenableVisuals.Layer"] - - state: fill-1 + - state: fill-6 map: ["enum.SolutionContainerLayers.Fill"] - visible: false - type: SolutionContainerVisuals maxFillLevels: 6 fillBaseName: fill- - type: entity - parent: [DrinkVisualsAll, DrinkBottleGlassBaseFull] + parent: [DrinkVisualsAllFilled, DrinkBottleGlassBaseFull] id: DrinkPatronBottleFull name: Wrapp Artiste Patrón bottle description: Silver laced tequila, served in space night clubs across the galaxy. @@ -281,7 +284,7 @@ - DrinkBottle - type: entity - parent: [DrinkVisualsAll, DrinkBottleGlassBaseFull] + parent: [DrinkVisualsAllFilled, DrinkBottleGlassBaseFull] id: DrinkRumBottleFull name: Captain Pete's Cuban spiced rum description: This isn't just rum, oh no. It's practically GRIFF in a bottle. @@ -298,7 +301,7 @@ sprite: Objects/Consumable/Drinks/rumbottle.rsi - type: entity - parent: [DrinkVisualsAll, DrinkBottleGlassBaseFull] + parent: [DrinkVisualsAllFilled, DrinkBottleGlassBaseFull] id: DrinkTequilaBottleFull name: Caccavo Guaranteed Quality tequila bottle description: Made from premium petroleum distillates, pure thalidomide and other fine quality ingredients! @@ -313,10 +316,9 @@ currentLabel: reagent-name-tequila - type: Sprite sprite: Objects/Consumable/Drinks/tequillabottle.rsi - - type: Sealable - type: entity - parent: [DrinkVisualsAll, DrinkBottleGlassBaseFull] + parent: [DrinkVisualsAllFilled, DrinkBottleGlassBaseFull] id: DrinkVermouthBottleFull name: Goldeneye vermouth bottle description: Sweet, sweet dryness! @@ -331,10 +333,9 @@ currentLabel: reagent-name-vermouth - type: Sprite sprite: Objects/Consumable/Drinks/vermouthbottle.rsi - - type: Sealable - type: entity - parent: [DrinkVisualsAll, DrinkBottleGlassBaseFull] + parent: [DrinkVisualsAllFilled, DrinkBottleGlassBaseFull] id: DrinkVodkaBottleFull name: vodka bottle description: Aah, vodka. Prime choice of drink AND fuel by Russians worldwide. @@ -349,10 +350,9 @@ currentLabel: reagent-name-vodka - type: Sprite sprite: Objects/Consumable/Drinks/vodkabottle.rsi - - type: Sealable - type: entity - parent: [DrinkVisualsAll, DrinkBottleGlassBaseFull] + parent: [DrinkVisualsAllFilled, DrinkBottleGlassBaseFull] id: DrinkWhiskeyBottleFull name: Uncle Git's Special Reserve description: A premium single-malt whiskey, gently matured inside the tunnels of a nuclear shelter. TUNNEL WHISKEY RULES. @@ -367,7 +367,6 @@ currentLabel: reagent-name-whiskey - type: Sprite sprite: Objects/Consumable/Drinks/whiskeybottle.rsi - - type: Sealable - type: entity parent: [DrinkVisualsOpenable, DrinkBottleGlassBaseFull] @@ -394,7 +393,7 @@ # Extra large bottles - type: entity - parent: [DrinkVisualsAll, DrinkBottleGlassBaseFull] + parent: [DrinkVisualsAllFilled, DrinkBottleGlassBaseFull] id: DrinkBeerGrowler # Needs to be renamed DrinkBeerBottleFull name: beer growler # beer it is. coffee. beer? coff-ee? be-er? c-o... b-e description: An alcoholic beverage made from malted grains, hops, yeast, and water. XL growler bottle. @@ -412,13 +411,15 @@ sprite: Objects/Consumable/Drinks/beer.rsi - type: Openable closeable: false + - type: Sealable + examineTextUnsealed: drink-component-on-examine-is-unsealed-no-cork # tell the player why it can't close - type: Tag tags: - Beer - DrinkBottle - type: entity - parent: [DrinkVisualsAll, DrinkBottleGlassBaseFull] + parent: [DrinkVisualsAllFilled, DrinkBottleGlassBaseFull] id: DrinkAleBottleFullGrowler name: Magm-Ale growler description: A true dorf's drink of choice. XL growler bottle. @@ -436,11 +437,14 @@ sprite: Objects/Consumable/Drinks/alebottle.rsi - type: Openable closeable: false + - type: Sealable + examineTextUnsealed: drink-component-on-examine-is-unsealed-no-cork # tell the player why it can't close + # Small glass bottles - type: entity - parent: [DrinkVisualsAll, DrinkBottleGlassSmallBaseFull] + parent: [DrinkVisualsAllFilled, DrinkBottleGlassSmallBaseFull] id: DrinkBeerBottleFull name: beer bottle # beer it is. coffee. beer? coff-ee? be-er? c-o... b-e description: An alcoholic beverage made from malted grains, hops, yeast, and water. @@ -464,7 +468,7 @@ - Beer - type: entity - parent: [DrinkVisualsAll, DrinkBottleGlassSmallBaseFull] + parent: [DrinkVisualsAllFilled, DrinkBottleGlassSmallBaseFull] id: DrinkAleBottleFull name: Magm-Ale bottle description: A true dorf's drink of choice. diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_plastic.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_plastic.yml index 7ec62371d9..b875c03df3 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_plastic.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_plastic.yml @@ -1,6 +1,6 @@ - type: entity abstract: true - parent: [ DrinkBase, DrinkBasePlastic, DrinkBaseOpenable ] + parent: [ DrinkBase, DrinkBaseMaterialPlastic, DrinkBaseOpenable ] id: DrinkBottlePlasticBaseFull suffix: Full components: @@ -61,7 +61,7 @@ # Small Plastic Bottles - type: entity - parent: [DrinkVisualsAll, DrinkBottlePlasticSmallBaseFull] + parent: [DrinkVisualsAllFilled, DrinkBottlePlasticSmallBaseFull] id: DrinkWaterBottleFull name: water bottle description: Simple clean water of unknown origin. You think that maybe you dont want to know it. @@ -80,7 +80,7 @@ # Large Plastic Bottles - type: entity - parent: [DrinkVisualsAll, DrinkBottlePlasticBaseFull] + parent: [DrinkVisualsAllFilled, DrinkBottlePlasticBaseFull] id: DrinkColaBottleFull name: Space Cola bottle description: Cola. In spaaace! @@ -97,7 +97,7 @@ sprite: Objects/Consumable/Drinks/colabottle.rsi - type: entity - parent: [DrinkVisualsAll, DrinkBottlePlasticBaseFull] + parent: [DrinkVisualsAllFilled, DrinkBottlePlasticBaseFull] id: DrinkSpaceMountainWindBottleFull name: Space Solar Wind bottle description: Blows right through you like a solar wind. @@ -114,7 +114,7 @@ sprite: Objects/Consumable/Drinks/space_mountain_wind_bottle.rsi - type: entity - parent: [DrinkVisualsAll, DrinkBottlePlasticBaseFull] + parent: [DrinkVisualsAllFilled, DrinkBottlePlasticBaseFull] id: DrinkSpaceUpBottleFull name: Space-Up bottle description: Tastes like a hull breach in your mouth. @@ -131,7 +131,7 @@ sprite: Objects/Consumable/Drinks/space-up_bottle.rsi - type: entity - parent: [DrinkVisualsAll, DrinkBottlePlasticBaseFull] + parent: [DrinkVisualsAllFilled, DrinkBottlePlasticBaseFull] id: DrinkSodaWaterBottleFull name: soda water bottle description: Like water, but angry! @@ -149,7 +149,7 @@ currentLabel: reagent-name-soda-water - type: entity - parent: [DrinkVisualsAll, DrinkBottlePlasticBaseFull] + parent: [DrinkVisualsAllFilled, DrinkBottlePlasticBaseFull] id: DrinkTonicWaterBottleFull name: tonic water bottle description: Like soda water, but angrier maybe? Often sweeter. diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml index d63636b79e..0318b05c5c 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml @@ -1,7 +1,7 @@ # 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: [ DrinkBase, DrinkBaseMetal, DrinkBaseOpenable, DrinkVisualsOpenable ] + parent: [ DrinkBase, DrinkBaseMaterialMetal, DrinkBaseOpenable, DrinkVisualsOpenable ] id: DrinkCanBaseFull suffix: Full components: diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml index 923d8670a3..b1867d2600 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml @@ -24,7 +24,7 @@ # A mug is a type of cup.[2] - type: entity abstract: true - parent: [DrinkBaseCup, DrinkBasePorcelain] + parent: [DrinkBaseCup, DrinkBaseMaterialPorcelain] id: DrinkBaseMug name: mug description: A mug. @@ -49,7 +49,7 @@ ## Misc Cups - type: entity - parent: [DrinkBaseCup, DrinkBaseGold] + parent: [DrinkBaseCup, DrinkBaseMaterialGold] id: DrinkGoldenCup name: golden cup description: A golden cup. @@ -78,15 +78,11 @@ maxFillLevels: 4 - type: entity - parent: [ DrinkBase, DrinkBaseGlass ] + parent: [ DrinkBaseCup, DrinkBaseMaterialGlass ] id: DrinkGlassCoupeShaped name: coupe glass description: A classic thin neck coupe glass, the icon of fragile labels on crates around the galaxy. components: - - type: SolutionContainerManager - solutions: - drink: - maxVol: 30 - type: Sprite sprite: Objects/Consumable/Drinks/glass_coupe_shape.rsi layers: @@ -105,15 +101,9 @@ inHandsFillBaseName: -fill- - type: ExaminableSolution solution: drink - - type: FitsInDispenser - solution: drink - - type: Tag - tags: - - DrinkGlass - - Recyclable - type: entity - parent: [DrinkBase, DrinkBaseCardboard] + parent: [DrinkBaseCup, DrinkBaseMaterialCardboard] id: DrinkWaterCup name: water cup description: A paper water cup. @@ -122,21 +112,22 @@ solutions: drink: maxVol: 5 # One sip at a time. No rushing at the water cooler - - type: FitsInDispenser - solution: drink + - type: Item + size: Tiny - type: Sprite sprite: Objects/Consumable/Drinks/water_cup.rsi layers: - state: icon-0 - - map: ["enum.SolutionContainerLayers.Fill"] - state: icon-1 - - type: Appearance - - type: SolutionContainerVisuals + - state: icon-1 + map: ["enum.SolutionContainerLayers.Fill"] + visible: false + - type: SolutionContainerVisuals # TODO this doesn't work maxFillLevels: 1 fillBaseName: icon- - type: Tag tags: - Trash + - DrinkCup - WhitelistChameleon - type: TrashOnSolutionEmpty solution: drink @@ -202,7 +193,7 @@ sprite: Objects/Consumable/Drinks/mug_heart.rsi - type: entity - parent: [DrinkBaseMetal, DrinkBaseMug] + parent: [DrinkBaseMaterialMetal, DrinkBaseMug] id: DrinkMugMetal name: metal mug description: A metal mug. You're not sure which metal. @@ -247,12 +238,12 @@ sprite: Objects/Consumable/Drinks/mug_red.rsi ## Filled -# TODO these need a material for destruction, maybe a better parent - type: entity parent: DrinkBaseMug id: DrinkHotCoco name: hot chocolate + suffix: Full description: A heated drink consisting melted chocolate and heated milk. components: - type: SolutionContainerManager @@ -280,6 +271,7 @@ parent: DrinkBaseMug id: DrinkHotCoffee name: coffee + suffix: Full description: Coffee is a brewed drink prepared from roasted seeds, commonly called coffee beans, of the coffee plant. components: - type: SolutionContainerManager @@ -304,9 +296,10 @@ solution: drink - type: entity - parent: [DrinkBaseCup, DrinkBaseCardboard] + parent: DrinkBaseMug id: DrinkCafeLatte name: cafe latte + suffix: Full description: A nice, strong and tasty beverage while you are reading. components: - type: SolutionContainerManager @@ -332,6 +325,7 @@ - type: entity parent: DrinkTeacupEmpty id: DrinkTeacup + name: tea components: - type: SolutionContainerManager solutions: @@ -346,7 +340,6 @@ parent: DrinkTeacupEmpty id: DrinkGreenTea name: green tea - description: A plain white porcelain teacup. components: - type: SolutionContainerManager solutions: @@ -361,7 +354,7 @@ solution: drink - type: entity - parent: [DrinkBaseCup, DrinkBasePlastic] + parent: [DrinkBaseCup, DrinkBaseMaterialPlastic] id: DrinkLean name: grape juice description: Damn, no fun allowed. diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_flasks.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_flasks.yml index b15a56747a..a41d67fac3 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_flasks.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_flasks.yml @@ -1,6 +1,6 @@ - type: entity abstract: true - parent: [DrinkBase, DrinkBaseStrongMetal, DrinkBaseOpenable] + parent: [DrinkBase, DrinkBaseMaterialStrongMetal, DrinkBaseOpenable] id: FlaskBase components: - type: SolutionContainerManager @@ -92,6 +92,9 @@ components: - type: Sprite sprite: Objects/Consumable/Drinks/flask_old.rsi + - type: Openable # annoying hack + opened: true + closeable: false - type: entity parent: [FlaskBase, DrinkVisualsOpenable] diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_fun.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_fun.yml index 5be5b615f8..bdd83966c6 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_fun.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_fun.yml @@ -1,5 +1,5 @@ - type: entity - parent: [DrinkBase, DrinkBasePlastic, DrinkBaseOpenable, DrinkVisualsOpenable ] + parent: [DrinkBase, DrinkBaseMaterialPlastic, DrinkBaseOpenable, DrinkVisualsOpenable ] id: DrinkSpaceGlue name: space glue tube description: High performance glue intended for maintenance of extremely complex mechanical equipment. DON'T DRINK! @@ -12,9 +12,8 @@ layers: - state: icon map: ["enum.OpenableVisuals.Layer"] - - state: fill1 - map: [ "enum.SolutionContainerLayers.Fill" ] - visible: false + - state: fill6 + map: [ "enum.SolutionContainerLayers.Fill" ] # already has liquid, so no visible: false - state: icon-front map: [ "enum.SolutionContainerLayers.Overlay" ] - type: Glue @@ -35,7 +34,7 @@ solution: drink - type: entity - parent: [DrinkBase, DrinkBasePlastic, DrinkBaseOpenable, DrinkVisualsOpenable ] + parent: [DrinkBase, DrinkBaseMaterialPlastic, DrinkBaseOpenable, DrinkVisualsOpenable ] id: DrinkSpaceLube name: space lube tube description: High performance lubricant intended for maintenance of extremely complex mechanical equipment. @@ -48,9 +47,8 @@ layers: - state: icon map: ["enum.OpenableVisuals.Layer"] - - state: fill1 - map: [ "enum.SolutionContainerLayers.Fill" ] - visible: false + - state: fill6 + map: [ "enum.SolutionContainerLayers.Fill" ] # already has liquid, so no visible: false - state: icon-front map: [ "enum.SolutionContainerLayers.Overlay" ] - type: SolutionContainerManager @@ -90,7 +88,7 @@ Quantity: 200 - type: entity - parent: [DrinkBase, DrinkBaseGlass] + parent: [DrinkBase, DrinkBaseMaterialGlass] id: DrinkJarWhat name: jar of something description: You can't really tell what this is. @@ -153,7 +151,7 @@ - FourteenLoko - type: entity - parent: [DrinkVisualsAll, DrinkBottleGlassSmallBaseFull] + parent: [DrinkVisualsAllFilled, DrinkBottleGlassSmallBaseFull] id: DrinkMopwataBottleRandom name: delicious mopwata description: A foggy brown bottle with a faded label depicting a mop. It comes full of murky... vintage. diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_metamorphic.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_metamorphic.yml index e0ab21e40e..adadea50f4 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_metamorphic.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_metamorphic.yml @@ -4,7 +4,7 @@ # Transformable container - normal glass - type: entity - parent: [DrinkBase, DrinkBaseGlass] + parent: [DrinkBaseCup, DrinkBaseMaterialGlass] id: DrinkGlass name: metamorphic glass description: A metamorphic glass that automagically turns into a glass appropriate for the drink within. There's a sanded off patent number on the bottom. @@ -33,15 +33,14 @@ state: icon - type: ExaminableSolution solution: drink - - type: FitsInDispenser - solution: drink - type: Tag tags: - - DrinkGlass + - DrinkCup # Do these tags + - DrinkGlass # even do anything? - type: TransformableContainer - type: entity - parent: [DrinkBase, DrinkBaseGlass] + parent: DrinkGlass id: DrinkJar name: jar description: The hipster's cup. @@ -56,29 +55,18 @@ visible: false - state: icon-front map: [ "enum.SolutionContainerLayers.Overlay" ] - - type: Appearance - type: SolutionContainerManager solutions: drink: maxVol: 50 - type: SolutionContainerVisuals - maxFillLevels: 9 - fillBaseName: fill - metamorphic: true metamorphicDefaultSprite: sprite: Objects/Consumable/Drinks/jar.rsi state: icon - - type: ExaminableSolution - solution: drink - - type: FitsInDispenser - solution: drink - - type: Tag - tags: - - DrinkGlass - - type: TransformableContainer ## Filled # TODO entities without IconComponent need a metamorphic sprite on the reagent +# TODO IconComponent doesn't seem to work in spawn panel - type: entity parent: DrinkGlass diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml index ceea309474..3ac01c1258 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml @@ -1,5 +1,5 @@ - type: entity - parent: [DrinkBase, DrinkBaseGlass] + parent: [DrinkBase, DrinkBaseMaterialGlass] id: DrinkShotGlass name: shot glass description: Perfect for slamming down onto the table angrily. @@ -8,6 +8,8 @@ solutions: drink: maxVol: 5 + - type: Item + size: Tiny - type: Sprite sprite: Objects/Consumable/Drinks/shotglass.rsi layers: @@ -33,7 +35,7 @@ - DrinkGlass - type: entity - parent: DrinkBase + parent: [DrinkBase, DrinkBaseMaterialMetal] id: DrinkIceBucket name: ice bucket description: A special bucket of refreshy ice. Prohibited use for challenge with the same name! @@ -52,7 +54,7 @@ Steel: 75 - type: entity - parent: [DrinkBase, DrinkBasePorcelain] + parent: [DrinkBase, DrinkBaseMaterialPorcelain] id: DrinkTeapot name: teapot # short and stout description: An elegant teapot. It simply oozes class. @@ -125,7 +127,7 @@ # Bartender tools - type: entity - parent: DrinkBase + parent: [DrinkBase, DrinkBaseMaterialStrongMetal] id: DrinkShaker name: shaker description: The trusty mixing buddy of the bartender. @@ -151,7 +153,7 @@ - Shake - type: entity - parent: DrinkBase + parent: [DrinkBase, DrinkBaseMaterialMetal] id: DrinkJigger name: jigger description: Like a shaker, but smaller. Used to control the amount of ingredients. @@ -160,6 +162,8 @@ solutions: drink: maxVol: 20 + - type: Item + size: Tiny - type: SolutionTransfer canChangeTransferAmount: true minTransferAmount: 1 @@ -174,7 +178,7 @@ Steel: 20 - type: entity - parent: DrinkBase + parent: [DrinkBase, DrinkBaseMaterialStrongMetal] id: Pitcher name: metal pitcher description: A stainless steel insulated pitcher. Everyone's best friend in the morning. @@ -197,9 +201,6 @@ fillBaseName: fill- inHandsMaxFillLevels: 2 inHandsFillBaseName: -fill- - - type: PhysicalComposition - materialComposition: - Steel: 300 - type: FitsInDispenser solution: drink @@ -207,7 +208,7 @@ - type: entity abstract: true - parent: [DrinkBase, DrinkBaseGlass] + parent: [DrinkBase, DrinkBaseMaterialGlass] id: DrinkShakeBase description: '' components: From ae2de02f0ec512a21afda6b823e3d256ba3b4218 Mon Sep 17 00:00:00 2001 From: iaada Date: Mon, 28 Jul 2025 01:06:18 -0500 Subject: [PATCH 23/41] another pass --- .../Consumable/Drinks/drinks-cartons.yml | 34 +++++++++---------- .../Drinks/drinks_bottles_glass.yml | 9 +++-- .../Drinks/drinks_bottles_plastic.yml | 5 +-- .../Objects/Consumable/Drinks/drinks_cups.yml | 11 +++--- .../Objects/Consumable/Drinks/drinks_fun.yml | 4 +-- 5 files changed, 31 insertions(+), 32 deletions(-) diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks-cartons.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks-cartons.yml index ab7d0c1e30..434e4c3f77 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks-cartons.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks-cartons.yml @@ -1,6 +1,6 @@ - type: entity abstract: true - parent: [ DrinkBase, DrinkBaseMaterialCardboard, DrinkBaseOpenable ] + parent: [ DrinkBase, DrinkBaseMaterialCardboard, DrinkBaseOpenable, DrinkVisualsOpenable ] id: DrinkCartonBaseLargeFull suffix: Full components: @@ -47,7 +47,7 @@ # Small carton - type: entity - parent: [DrinkVisualsOpenable, DrinkCartonBaseFull] + parent: [DrinkBaseMaterialPlastic, DrinkCartonBaseFull] id: DrinkJuiceLimeCarton name: lime juice description: Sweet-sour goodness. @@ -59,10 +59,10 @@ - ReagentId: JuiceLime Quantity: 50 - type: Sprite - sprite: Objects/Consumable/Drinks/limejuice.rsi # Looks more like plastic than cardboard + sprite: Objects/Consumable/Drinks/limejuice.rsi - type: entity - parent: [DrinkVisualsOpenable, DrinkCartonBaseFull] + parent: DrinkCartonBaseFull id: DrinkJuiceOrangeCarton name: orange juice description: Full of vitamins and deliciousness! @@ -77,7 +77,7 @@ sprite: Objects/Consumable/Drinks/orangejuice.rsi - type: entity - parent: [DrinkVisualsOpenable, DrinkCartonBaseFull] + parent: DrinkCartonBaseFull id: DrinkJuiceTomatoCarton name: tomato juice description: Well, at least it LOOKS like tomato juice. You can't tell with all that redness. @@ -92,7 +92,7 @@ sprite: Objects/Consumable/Drinks/tomatojuice.rsi - type: entity - parent: [DrinkVisualsOpenable, DrinkCartonBaseFull] + parent: DrinkCartonBaseFull id: DrinkCoconutWaterCarton name: coconut water description: It's the inside of the coconut that counts. @@ -107,7 +107,7 @@ sprite: Objects/Consumable/Drinks/coconutwater.rsi - type: entity - parent: [DrinkVisualsOpenable, DrinkCartonBaseFull] + parent: DrinkCartonBaseFull id: DrinkCreamCarton name: milk cream description: It's cream. Made from milk. What else did you think you'd find in there? @@ -122,7 +122,7 @@ sprite: Objects/Consumable/Drinks/cream.rsi - type: entity - parent: [DrinkVisualsOpenable, DrinkCartonBaseFull] + parent: [DrinkBaseMaterialPlastic, DrinkCartonBaseFull] id: DrinkJuiceLemonCarton name: lemon juice description: First it's sour, then it's still sour. @@ -134,10 +134,10 @@ - ReagentId: JuiceLemon Quantity: 50 - type: Sprite - sprite: Objects/Consumable/Drinks/lemonjuice.rsi # Looks more like plastic than cardboard + sprite: Objects/Consumable/Drinks/lemonjuice.rsi - type: entity - parent: [DrinkVisualsOpenable, DrinkCartonBaseFull] + parent: DrinkCartonBaseFull id: DrinkJuicePineappleCarton name: pineapple juice description: Tastes like a tropical vacation far from space. @@ -154,7 +154,7 @@ # Large carton - type: entity - parent: [DrinkVisualsOpenable, DrinkCartonBaseLargeFull] + parent: DrinkCartonBaseLargeFull id: DrinkMilkCarton name: milk description: An opaque white liquid produced by the mammary glands of mammals. @@ -169,7 +169,7 @@ sprite: Objects/Consumable/Drinks/milk.rsi - type: entity - parent: [DrinkVisualsOpenable, DrinkCartonBaseLargeFull] + parent: DrinkCartonBaseLargeFull id: DrinkSoyMilkCarton name: soy milk description: White and nutritious soy goodness! @@ -184,7 +184,7 @@ sprite: Objects/Consumable/Drinks/soymilk.rsi - type: entity - parent: [DrinkVisualsOpenable, DrinkCartonBaseLargeFull] + parent: DrinkCartonBaseLargeFull id: DrinkOatMilkCarton name: oat milk description: It's oat milk. Tan and nutritious goodness! @@ -201,7 +201,7 @@ # Xtra large - type: entity - parent: [DrinkVisualsOpenable, DrinkCartonBaseXtraLargeFull] + parent: [DrinkBaseMaterialPlastic, DrinkCartonBaseXtraLargeFull] id: DrinkJuiceLimeCartonXL name: lime juice XL description: Sweet-sour goodness. @@ -216,10 +216,10 @@ - type: Label currentLabel: reagent-name-juice-lime - type: Sprite - sprite: Objects/Consumable/Drinks/limejuice.rsi # Doesn't really look like cardboard... + sprite: Objects/Consumable/Drinks/limejuice.rsi - type: entity - parent: [DrinkVisualsOpenable, DrinkCartonBaseXtraLargeFull] + parent: DrinkCartonBaseXtraLargeFull id: DrinkJuiceOrangeCartonXL name: orange juice XL description: Full of vitamins and deliciousness! @@ -237,7 +237,7 @@ sprite: Objects/Consumable/Drinks/orangejuice.rsi - type: entity - parent: [DrinkVisualsOpenable, DrinkCartonBaseXtraLargeFull] + parent: DrinkCartonBaseXtraLargeFull id: DrinkCreamCartonXL name: milk cream XL description: It's cream. Made from milk. What else did you think you'd find in there? diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_glass.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_glass.yml index fa0cd1692c..7d597ab8c7 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_glass.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_glass.yml @@ -384,7 +384,6 @@ currentLabel: reagent-name-wine - type: Sprite sprite: Objects/Consumable/Drinks/winebottle.rsi - - type: Sealable - type: Tag tags: - Wine @@ -410,9 +409,9 @@ - type: Sprite sprite: Objects/Consumable/Drinks/beer.rsi - type: Openable - closeable: false + closeable: false # sprite is just a beer bottle, but this should be removed when there's a more appropriate sprite - type: Sealable - examineTextUnsealed: drink-component-on-examine-is-unsealed-no-cork # tell the player why it can't close + examineTextUnsealed: drink-component-on-examine-is-unsealed-crown-cap # tell the player why it can't close - type: Tag tags: - Beer @@ -436,9 +435,9 @@ - type: Sprite sprite: Objects/Consumable/Drinks/alebottle.rsi - type: Openable - closeable: false + closeable: false # sprite is just a beer bottle, but this should be removed when there's a more appropriate sprite - type: Sealable - examineTextUnsealed: drink-component-on-examine-is-unsealed-no-cork # tell the player why it can't close + examineTextUnsealed: drink-component-on-examine-is-unsealed-crown-cap # tell the player why it can't close # Small glass bottles diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_plastic.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_plastic.yml index b875c03df3..f55325df85 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_plastic.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_plastic.yml @@ -23,7 +23,7 @@ solution: drink - type: Tag tags: - - DrinkBottle + - DrinkBottle # Needed to fit in the soda dispenser, needs a better name - type: entity abstract: true @@ -39,9 +39,6 @@ - type: Sprite state: icon sprite: Objects/Consumable/Drinks/waterbottle.rsi # fallback - - type: Tag - tags: - - DrinkBottle - type: FitsInDispenser solution: drink diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml index b1867d2600..822809f4f1 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml @@ -33,8 +33,8 @@ sprite: Objects/Consumable/Drinks/mug.rsi layers: - state: icon-0 - - map: ["enum.SolutionContainerLayers.Fill"] - state: icon-3 + - state: icon-3 + map: ["enum.SolutionContainerLayers.Fill"] visible: false - type: Appearance - type: SolutionContainerVisuals @@ -60,7 +60,7 @@ price: 125 - type: entity - parent: DrinkBaseMug + parent: [DrinkBaseCup, DrinkBaseMaterialPorcelain] id: DrinkTeacupEmpty name: teacup description: A plain white porcelain teacup. @@ -74,6 +74,7 @@ - state: icon-0 - map: ["enum.SolutionContainerLayers.Fill"] state: icon-4 + - type: Appearance - type: SolutionContainerVisuals maxFillLevels: 4 @@ -121,7 +122,7 @@ - state: icon-1 map: ["enum.SolutionContainerLayers.Fill"] visible: false - - type: SolutionContainerVisuals # TODO this doesn't work + - type: SolutionContainerVisuals maxFillLevels: 1 fillBaseName: icon- - type: Tag @@ -129,6 +130,7 @@ - Trash - DrinkCup - WhitelistChameleon + - type: Appearance - type: TrashOnSolutionEmpty solution: drink - type: Clothing @@ -353,6 +355,7 @@ - type: TrashOnSolutionEmpty solution: drink +# TODO this needs fill levels - type: entity parent: [DrinkBaseCup, DrinkBaseMaterialPlastic] id: DrinkLean diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_fun.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_fun.yml index bdd83966c6..3b3ee707fa 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_fun.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_fun.yml @@ -1,5 +1,5 @@ - type: entity - parent: [DrinkBase, DrinkBaseMaterialPlastic, DrinkBaseOpenable, DrinkVisualsOpenable ] + parent: [ DrinkBase, DrinkBaseMaterialPlastic, DrinkBaseOpenable, DrinkVisualsOpenable ] id: DrinkSpaceGlue name: space glue tube description: High performance glue intended for maintenance of extremely complex mechanical equipment. DON'T DRINK! @@ -34,7 +34,7 @@ solution: drink - type: entity - parent: [DrinkBase, DrinkBaseMaterialPlastic, DrinkBaseOpenable, DrinkVisualsOpenable ] + parent: [ DrinkBase, DrinkBaseMaterialPlastic, DrinkBaseOpenable, DrinkVisualsOpenable ] id: DrinkSpaceLube name: space lube tube description: High performance lubricant intended for maintenance of extremely complex mechanical equipment. From 8b6da7190b11d374086caf06b5e6c90e8747942c Mon Sep 17 00:00:00 2001 From: iaada Date: Mon, 28 Jul 2025 23:34:53 -0500 Subject: [PATCH 24/41] quality passes will continue until i'm satisfied --- .../Objects/Consumable/Drinks/drinks_base.yml | 58 +++++++++++++++++-- .../Drinks/drinks_base_materials.yml | 36 ++++++------ .../Objects/Consumable/Drinks/drinks_cups.yml | 16 ++--- .../Objects/Consumable/Drinks/drinks_fun.yml | 4 +- .../Consumable/Drinks/drinks_metamorphic.yml | 4 +- .../Consumable/Drinks/drinks_special.yml | 20 +++---- 6 files changed, 86 insertions(+), 52 deletions(-) diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml index 65befafd08..76a50ab525 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml @@ -37,7 +37,7 @@ enum.TransferAmountUiKey.Key: type: TransferAmountBoundUserInterface -## Misc +## Misc bases # This drink is empty trash - type: entity @@ -52,7 +52,7 @@ tags: - Trash -## For drinks with a lid +## Bases for drinks with a lid # Un-opened - type: entity @@ -79,9 +79,9 @@ - type: Sealable sealed: false -## For visuals +## Bases for visuals -# Basic visualizer for an openable entity, often paired with BaseDrinkOpenable +# Basic visualizer for an openable entity, usually paired with BaseDrinkOpenable - type: entity abstract: true id: DrinkVisualsOpenable @@ -98,6 +98,52 @@ - state: icon map: ["enum.OpenableVisuals.Layer"] +# Basic visualizer for an entity with fill levels +- type: entity + abstract: true + id: DrinkVisualsFill + components: + - type: Appearance + - type: Sprite + layers: + - state: icon_empty + - state: fill-1 + map: ["enum.SolutionContainerLayers.Fill"] + visible: false + - type: SolutionContainerVisuals + maxFillLevels: 5 + fillBaseName: fill- + inHandsMaxFillLevels: 3 + inHandsFillBaseName: -fill- + +# Layered visualizer for an entity with fill levels +- type: entity + abstract: true + parent: DrinkVisualsFill + id: DrinkVisualsFillOverlay + components: + - type: Sprite + layers: + - state: icon_empty + map: [ "enum.SolutionContainerLayers.Base" ] + - state: fill-1 + map: [ "enum.SolutionContainerLayers.Fill" ] + visible: false + - state: icon-front + map: [ "enum.SolutionContainerLayers.Overlay" ] + +# Basic visualizer for an entity with fill levels, already filled +- type: entity + abstract: true + parent: DrinkVisualsFill + id: DrinkVisualsFillFilled + components: + - type: Sprite + layers: + - state: icon + - state: fill-5 # this will need to be different with a different maxFillLevels + map: ["enum.SolutionContainerLayers.Fill"] + # Visualizer for an openable entity with fill levels - type: entity abstract: true @@ -112,7 +158,7 @@ False: {state: "icon_empty"} - type: Sprite layers: - - state: icon + - state: icon_empty map: ["enum.OpenableVisuals.Layer"] - state: fill-1 map: ["enum.SolutionContainerLayers.Fill"] @@ -131,7 +177,7 @@ components: - type: Sprite layers: - - state: icon + - state: icon_empty map: ["enum.OpenableVisuals.Layer"] - state: fill-5 # this will need to be different with a different maxFillLevels map: ["enum.SolutionContainerLayers.Fill"] diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base_materials.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base_materials.yml index d09df66b4c..b59d3a961f 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base_materials.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base_materials.yml @@ -1,4 +1,4 @@ -# Material costs to apply to a drink +## Material costs to apply to a drink # Adding one of these bases as the first parent will override a previous inherited material # Fragile glass @@ -11,8 +11,8 @@ damageModifierSet: FlimsyGlass - type: Destructible thresholds: - - trigger: - !type:DamageTrigger # Overkill threshold + - trigger: # Overkill threshold + !type:DamageTrigger damage: 200 behaviors: - !type:DoActsBehavior @@ -56,8 +56,8 @@ damageModifierSet: FlimsyGlass - type: Destructible thresholds: - - trigger: - !type:DamageTrigger # Overkill threshold + - trigger: # Overkill threshold + !type:DamageTrigger damage: 200 behaviors: - !type:DoActsBehavior @@ -92,11 +92,11 @@ components: - type: Damageable damageContainer: Inorganic -#TODO damageModifierSet: +#TODO damageModifierSet: FlimsyPlastic - type: Destructible thresholds: - - trigger: - !type:DamageTrigger # Overkill threshold + - trigger: # Overkill threshold + !type:DamageTrigger damage: 200 behaviors: - !type:DoActsBehavior @@ -134,8 +134,8 @@ damageModifierSet: FlimsyWood - type: Destructible thresholds: - - trigger: - !type:DamageTrigger # Overkill threshold + - trigger: # Overkill threshold + !type:DamageTrigger damage: 200 behaviors: - !type:DoActsBehavior @@ -173,8 +173,8 @@ damageModifierSet: FlimsyMetallic - type: Destructible thresholds: - - trigger: - !type:DamageTrigger # Overkill threshold + - trigger: # Overkill threshold + !type:DamageTrigger damage: 200 behaviors: - !type:DoActsBehavior @@ -212,8 +212,8 @@ damageModifierSet: Metallic - type: Destructible thresholds: - - trigger: - !type:DamageTrigger # Overkill threshold + - trigger: # Overkill threshold + !type:DamageTrigger damage: 200 behaviors: - !type:DoActsBehavior @@ -241,7 +241,7 @@ materialComposition: Steel: 300 -# Weak gold +# Flimsy gold - type: entity abstract: true id: DrinkBaseMaterialGold @@ -251,15 +251,15 @@ damageModifierSet: FlimsyMetallic - type: Destructible thresholds: - - trigger: - !type:DamageTrigger # Overkill threshold + - trigger: # Overkill threshold + !type:DamageTrigger damage: 200 behaviors: - !type:DoActsBehavior acts: [ "Destruction" ] - trigger: !type:DamageTrigger - damage: 10 # Gold is very weak + damage: 5 # Gold is very weak behaviors: - !type:PlaySoundBehavior sound: diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml index 822809f4f1..4e1069d33b 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml @@ -13,8 +13,6 @@ - type: SolutionTransfer canChangeTransferAmount: true maxTransferAmount: 10 - - type: Sprite - state: icon - type: Tag tags: - DrinkCup @@ -24,7 +22,7 @@ # A mug is a type of cup.[2] - type: entity abstract: true - parent: [DrinkBaseCup, DrinkBaseMaterialPorcelain] + parent: [DrinkBaseCup, DrinkBaseMaterialPorcelain] # Should use DrinkVisualsFill, but sprites have no in-hand id: DrinkBaseMug name: mug description: A mug. @@ -40,11 +38,6 @@ - type: SolutionContainerVisuals maxFillLevels: 3 fillBaseName: icon- - - type: StaticPrice - price: 10 - - type: Tag - tags: - - DrinkCup ## Misc Cups @@ -60,7 +53,7 @@ price: 125 - type: entity - parent: [DrinkBaseCup, DrinkBaseMaterialPorcelain] + parent: DrinkBaseMug id: DrinkTeacupEmpty name: teacup description: A plain white porcelain teacup. @@ -72,8 +65,9 @@ sprite: Objects/Consumable/Drinks/teacup.rsi layers: - state: icon-0 - - map: ["enum.SolutionContainerLayers.Fill"] - state: icon-4 + - state: icon-4 + map: ["enum.SolutionContainerLayers.Fill"] + visible: false - type: Appearance - type: SolutionContainerVisuals maxFillLevels: 4 diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_fun.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_fun.yml index 3b3ee707fa..4875f22e8b 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_fun.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_fun.yml @@ -1,5 +1,5 @@ - type: entity - parent: [ DrinkBase, DrinkBaseMaterialPlastic, DrinkBaseOpenable, DrinkVisualsOpenable ] + parent: [ DrinkBase, DrinkBaseMaterialPlastic, DrinkBaseOpenable, DrinkVisualsOpenable ] # Should use DrinkVisualAll, but sprite has no inhand id: DrinkSpaceGlue name: space glue tube description: High performance glue intended for maintenance of extremely complex mechanical equipment. DON'T DRINK! @@ -34,7 +34,7 @@ solution: drink - type: entity - parent: [ DrinkBase, DrinkBaseMaterialPlastic, DrinkBaseOpenable, DrinkVisualsOpenable ] + parent: [ DrinkBase, DrinkBaseMaterialPlastic, DrinkBaseOpenable, DrinkVisualsOpenable ] # Should use DrinkVisualAll, but sprite has no inhand id: DrinkSpaceLube name: space lube tube description: High performance lubricant intended for maintenance of extremely complex mechanical equipment. diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_metamorphic.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_metamorphic.yml index adadea50f4..427943a029 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_metamorphic.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_metamorphic.yml @@ -12,7 +12,7 @@ - type: Sprite sprite: Objects/Consumable/Drinks/glass_clear.rsi layers: - - state: icon + - state: icon # TODO add "icon_empty" state to match "DrinkVisualsFillOverlay" map: [ "enum.SolutionContainerLayers.Base" ] - state: fill1 map: [ "enum.SolutionContainerLayers.Fill" ] @@ -26,7 +26,7 @@ maxVol: 30 - type: SolutionContainerVisuals maxFillLevels: 9 - fillBaseName: fill + fillBaseName: fill # todo rename to "fill-", add in-hands, then add parent "DrinkVisualsFillOverlay" metamorphic: true metamorphicDefaultSprite: sprite: Objects/Consumable/Drinks/glass_clear.rsi diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml index 3ac01c1258..806d75765d 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml @@ -1,5 +1,5 @@ - type: entity - parent: [DrinkBase, DrinkBaseMaterialGlass] + parent: [DrinkBase, DrinkBaseMaterialGlass, DrinkVisualsFillOverlay] id: DrinkShotGlass name: shot glass description: Perfect for slamming down onto the table angrily. @@ -13,19 +13,17 @@ - type: Sprite sprite: Objects/Consumable/Drinks/shotglass.rsi layers: - - state: icon + - state: icon # TODO add "icon_empty" state to match "DrinkVisualsFillOverlay" map: [ "enum.SolutionContainerLayers.Base" ] - state: fill1 map: [ "enum.SolutionContainerLayers.Fill" ] visible: false - state: icon-front map: [ "enum.SolutionContainerLayers.Overlay" ] - - type: Appearance - type: SolutionContainerVisuals maxFillLevels: 2 - fillBaseName: fill + fillBaseName: fill # TODO rename to "fill-" to match "DrinkVisualsFillOverlay" inHandsMaxFillLevels: 1 - inHandsFillBaseName: -fill- - type: ExaminableSolution solution: drink - type: FitsInDispenser @@ -161,7 +159,7 @@ - type: SolutionContainerManager solutions: drink: - maxVol: 20 + maxVol: 20 # 20 might be too much - type: Item size: Tiny - type: SolutionTransfer @@ -178,7 +176,7 @@ Steel: 20 - type: entity - parent: [DrinkBase, DrinkBaseMaterialStrongMetal] + parent: [DrinkBase, DrinkBaseMaterialStrongMetal, DrinkVisualsFill] id: Pitcher name: metal pitcher description: A stainless steel insulated pitcher. Everyone's best friend in the morning. @@ -190,17 +188,13 @@ - type: Sprite sprite: Objects/Consumable/Drinks/pitcher.rsi layers: - - state: icon - map: ["enum.SolutionContainerLayers.Base"] - - state: fill-6 + - state: icon # TODO add "icon_empty" state to match "DrinkVisualsFill" + - state: fill-1 map: ["enum.SolutionContainerLayers.Fill"] visible: false - - type: Appearance - type: SolutionContainerVisuals maxFillLevels: 6 - fillBaseName: fill- inHandsMaxFillLevels: 2 - inHandsFillBaseName: -fill- - type: FitsInDispenser solution: drink From 2573d86303462b8016a93385cee3da4563326e53 Mon Sep 17 00:00:00 2001 From: iaada Date: Tue, 29 Jul 2025 00:08:47 -0500 Subject: [PATCH 25/41] add a todo --- .../Entities/Objects/Consumable/Drinks/trash_drinks.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/trash_drinks.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/trash_drinks.yml index 8ea6bd9b28..879ab62ba4 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/trash_drinks.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/trash_drinks.yml @@ -1,4 +1,5 @@ # File for containers like bottles or milk jugs that are empty +# TODO these prototypes have ambiguous names and should be renamed to match their filled versions, with "Full" replaced by "Empty" # When used as the first parent, this empties a bottle's reagent and spawns it already opened - type: entity From 21aa6c664a57344a2d20373597868cfe61f9089b Mon Sep 17 00:00:00 2001 From: iaada Date: Tue, 29 Jul 2025 14:02:02 -0500 Subject: [PATCH 26/41] consistent use of ExaminableSolution --- .../Consumable/Drinks/drinks-cartons.yml | 4 +- .../Objects/Consumable/Drinks/drinks_base.yml | 4 ++ .../Drinks/drinks_bottles_glass.yml | 10 ++--- .../Drinks/drinks_bottles_plastic.yml | 2 - .../Objects/Consumable/Drinks/drinks_cups.yml | 29 +++++------- .../Consumable/Drinks/drinks_flasks.yml | 44 ++++++++++--------- .../Objects/Consumable/Drinks/drinks_fun.yml | 2 +- .../Consumable/Drinks/drinks_special.yml | 4 +- 8 files changed, 47 insertions(+), 52 deletions(-) diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks-cartons.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks-cartons.yml index 434e4c3f77..5abc7d0ef4 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks-cartons.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks-cartons.yml @@ -1,7 +1,7 @@ - type: entity abstract: true parent: [ DrinkBase, DrinkBaseMaterialCardboard, DrinkBaseOpenable, DrinkVisualsOpenable ] - id: DrinkCartonBaseLargeFull + id: DrinkCartonBaseLargeFull # todo rename DrinkCartonBaseFull to match bottles suffix: Full components: - type: Openable @@ -22,7 +22,7 @@ - type: entity abstract: true parent: DrinkCartonBaseLargeFull - id: DrinkCartonBaseFull + id: DrinkCartonBaseFull # todo rename DrinkCartonSmallBaseFull to match bottles components: - type: SolutionContainerManager solutions: diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml index 76a50ab525..9856338fb1 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml @@ -115,6 +115,8 @@ fillBaseName: fill- inHandsMaxFillLevels: 3 inHandsFillBaseName: -fill- + - type: ExaminableSolution # If you can see the fill levels, you can see the unit count + solution: drink # Layered visualizer for an entity with fill levels - type: entity @@ -168,6 +170,8 @@ fillBaseName: fill- inHandsMaxFillLevels: 3 inHandsFillBaseName: -fill- + - type: ExaminableSolution # If you can see the fill levels, you can see the unit count + solution: drink # Visualizer for an openable entity with fill levels, already filled - type: entity diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_glass.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_glass.yml index 7d597ab8c7..b1d29188a4 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_glass.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_glass.yml @@ -29,8 +29,6 @@ - type: Tag tags: - DrinkBottle - - type: ExaminableSolution - solution: drink - type: entity abstract: true @@ -84,7 +82,7 @@ - type: Sprite sprite: Objects/Consumable/Drinks/alco-bottle.rsi layers: - - state: icon_blue + - state: icon_blue # todo add "icon_empty" state map: ["enum.OpenableVisuals.Layer"] - state: fill-6 map: ["enum.SolutionContainerLayers.Fill"] @@ -164,7 +162,7 @@ - type: Sprite sprite: Objects/Consumable/Drinks/grenadinebottle.rsi layers: - - state: icon + - state: icon_empty map: ["enum.OpenableVisuals.Layer"] - state: fill-6 map: ["enum.SolutionContainerLayers.Fill"] @@ -239,7 +237,7 @@ - type: Sprite sprite: Objects/Consumable/Drinks/alco-bottle.rsi layers: - - state: icon_green + - state: icon_green # todo icon_empty map: ["enum.OpenableVisuals.Layer"] - state: fill-6 map: ["enum.SolutionContainerLayers.Fill"] @@ -393,7 +391,7 @@ - type: entity parent: [DrinkVisualsAllFilled, DrinkBottleGlassBaseFull] - id: DrinkBeerGrowler # Needs to be renamed DrinkBeerBottleFull + id: DrinkBeerGrowler # todo Needs to be renamed DrinkBeerBottleFullGrowler name: beer growler # beer it is. coffee. beer? coff-ee? be-er? c-o... b-e description: An alcoholic beverage made from malted grains, hops, yeast, and water. XL growler bottle. components: diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_plastic.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_plastic.yml index f55325df85..1a12f11e34 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_plastic.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_plastic.yml @@ -17,7 +17,6 @@ drink: maxVol: 100 - type: Sprite - state: icon sprite: Objects/Consumable/Drinks/generic_jug.rsi # fallback to generic plastic jug - type: TrashOnSolutionEmpty solution: drink @@ -37,7 +36,6 @@ drink: maxVol: 30 - type: Sprite - state: icon sprite: Objects/Consumable/Drinks/waterbottle.rsi # fallback - type: FitsInDispenser solution: drink diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml index 4e1069d33b..e445abb88c 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml @@ -22,7 +22,7 @@ # A mug is a type of cup.[2] - type: entity abstract: true - parent: [DrinkBaseCup, DrinkBaseMaterialPorcelain] # Should use DrinkVisualsFill, but sprites have no in-hand + parent: [DrinkBaseCup, DrinkBaseMaterialPorcelain] # todo Should use DrinkVisualsFill, but inheritors have no in-hand and state names are wrong id: DrinkBaseMug name: mug description: A mug. @@ -38,6 +38,8 @@ - type: SolutionContainerVisuals maxFillLevels: 3 fillBaseName: icon- + - type: ExaminableSolution # If you can see the fill levels, you can see the unit count + solution: drink ## Misc Cups @@ -58,9 +60,6 @@ name: teacup description: A plain white porcelain teacup. components: - - type: Icon - sprite: Objects/Consumable/Drinks/teacup.rsi - state: icon-vend-tea - type: Sprite sprite: Objects/Consumable/Drinks/teacup.rsi layers: @@ -68,12 +67,11 @@ - state: icon-4 map: ["enum.SolutionContainerLayers.Fill"] visible: false - - type: Appearance - type: SolutionContainerVisuals maxFillLevels: 4 - type: entity - parent: [ DrinkBaseCup, DrinkBaseMaterialGlass ] + parent: [ DrinkBaseCup, DrinkBaseMaterialGlass, DrinkVisualsFillOverlay ] id: DrinkGlassCoupeShaped name: coupe glass description: A classic thin neck coupe glass, the icon of fragile labels on crates around the galaxy. @@ -81,24 +79,19 @@ - type: Sprite sprite: Objects/Consumable/Drinks/glass_coupe_shape.rsi layers: - - state: icon + - state: icon # todo add "icon_empty" state to match DrinkVisualsFillOverlay map: [ "enum.SolutionContainerLayers.Base" ] - state: fill1 map: [ "enum.SolutionContainerLayers.Fill" ] visible: false - state: icon-front map: [ "enum.SolutionContainerLayers.Overlay" ] - - type: Appearance - type: SolutionContainerVisuals - maxFillLevels: 5 - fillBaseName: fill + fillBaseName: fill # todo rename to "fill-" to match DrinkVisualsFillOverlay inHandsMaxFillLevels: 1 - inHandsFillBaseName: -fill- - - type: ExaminableSolution - solution: drink - type: entity - parent: [DrinkBaseCup, DrinkBaseMaterialCardboard] + parent: [DrinkBaseCup, DrinkBaseMaterialCardboard] # TODO should use DrinkVisualsFill but state names are wrong and no inhand id: DrinkWaterCup name: water cup description: A paper water cup. @@ -125,6 +118,8 @@ - DrinkCup - WhitelistChameleon - type: Appearance + - type: ExaminableSolution # If you can see the fill levels, you can see the unit count + solution: drink - type: TrashOnSolutionEmpty solution: drink - type: Clothing @@ -259,7 +254,6 @@ state: icon-4 - type: SolutionContainerVisuals maxFillLevels: 4 - fillBaseName: icon- - type: TrashOnSolutionEmpty solution: drink @@ -287,7 +281,6 @@ state: icon-4 - type: SolutionContainerVisuals maxFillLevels: 4 - fillBaseName: icon- - type: TrashOnSolutionEmpty solution: drink @@ -329,6 +322,9 @@ reagents: - ReagentId: Tea Quantity: 20 + - type: Icon + sprite: Objects/Consumable/Drinks/teacup.rsi + state: icon-vend-tea - type: TrashOnSolutionEmpty solution: drink @@ -364,7 +360,6 @@ Quantity: 20 - type: Sprite sprite: Objects/Consumable/Drinks/lean.rsi - state: icon - type: Item sprite: Objects/Consumable/Drinks/lean.rsi - type: TrashOnSolutionEmpty diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_flasks.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_flasks.yml index a41d67fac3..e40ef2188e 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_flasks.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_flasks.yml @@ -1,6 +1,6 @@ - type: entity abstract: true - parent: [DrinkBase, DrinkBaseMaterialStrongMetal, DrinkBaseOpenable] + parent: [DrinkBase, DrinkBaseMaterialStrongMetal, DrinkBaseOpenable, DrinkVisualsOpenable] id: FlaskBase components: - type: SolutionContainerManager @@ -8,7 +8,6 @@ drink: maxVol: 30 - type: Sprite - state: icon sprite: Objects/Consumable/Drinks/flask.rsi - type: FitsInDispenser solution: drink @@ -22,7 +21,22 @@ # Flasks - type: entity - parent: [FlaskBase, DrinkVisualsOpenable] + parent: [DrinkBase, DrinkBaseMaterialStrongMetal] + id: DrinkFlaskOld + name: old flask + description: A decrepit old flask, its lid seems to be missing. + components: + - type: SolutionContainerManager + solutions: + drink: + maxVol: 30 + - type: Sprite + sprite: Objects/Consumable/Drinks/flask_old.rsi + - type: FitsInDispenser + solution: drink + +- type: entity + parent: FlaskBase id: DrinkShinyFlask name: shiny flask description: A shiny metal flask. It appears to have a Greek symbol inscribed on it. @@ -31,7 +45,7 @@ sprite: Objects/Consumable/Drinks/shinyflask.rsi - type: entity - parent: [FlaskBase, DrinkVisualsOpenable] + parent: FlaskBase id: DrinkMREFlask suffix: Full name: MRE flask @@ -49,7 +63,7 @@ solution: drink - type: entity - parent: [FlaskBase, DrinkVisualsOpenable] + parent: FlaskBase id: DrinkDetFlask name: inspector's flask description: A metal flask with a leather band and golden badge belonging to the inspector. @@ -58,7 +72,7 @@ sprite: Objects/Consumable/Drinks/detflask.rsi - type: entity - parent: [FlaskBase, DrinkVisualsOpenable] + parent: FlaskBase id: DrinkHosFlask name: hos's flask description: A metal flask, fit for a hard working HoS. @@ -67,7 +81,7 @@ sprite: Objects/Consumable/Drinks/hosflask.rsi - type: entity - parent: [FlaskBase, DrinkVisualsOpenable] + parent: FlaskBase id: DrinkFlask name: captain's flask description: A metal flask belonging to the captain. @@ -76,7 +90,7 @@ sprite: Objects/Consumable/Drinks/flask.rsi - type: entity - parent: [FlaskBase, DrinkVisualsOpenable] + parent: FlaskBase id: DrinkFlaskBar name: bar flask description: A metal flask often given out by the bartender on loan. Don't forget to return it! @@ -86,18 +100,6 @@ - type: entity parent: FlaskBase - id: DrinkFlaskOld - name: old flask - description: A decrepit old flask, its lid seems to be missing. - components: - - type: Sprite - sprite: Objects/Consumable/Drinks/flask_old.rsi - - type: Openable # annoying hack - opened: true - closeable: false - -- type: entity - parent: [FlaskBase, DrinkVisualsOpenable] id: DrinkLithiumFlask name: lithium flask description: A flask with a Lithium Atom symbol on it. @@ -106,7 +108,7 @@ sprite: Objects/Consumable/Drinks/lithiumflask.rsi - type: entity - parent: [FlaskBase, DrinkVisualsOpenable] + parent: FlaskBase id: DrinkVacuumFlask name: vacuum flask description: Keeping your drinks at the perfect temperature since 1892. diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_fun.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_fun.yml index 4875f22e8b..180030d78a 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_fun.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_fun.yml @@ -1,5 +1,5 @@ - type: entity - parent: [ DrinkBase, DrinkBaseMaterialPlastic, DrinkBaseOpenable, DrinkVisualsOpenable ] # Should use DrinkVisualAll, but sprite has no inhand + parent: [ DrinkBase, DrinkBaseMaterialPlastic, DrinkBaseOpenable, DrinkVisualsOpenable ] # todo Should use DrinkVisualAll, but sprite has no inhand id: DrinkSpaceGlue name: space glue tube description: High performance glue intended for maintenance of extremely complex mechanical equipment. DON'T DRINK! diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml index 806d75765d..cb5d71665d 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml @@ -24,8 +24,6 @@ maxFillLevels: 2 fillBaseName: fill # TODO rename to "fill-" to match "DrinkVisualsFillOverlay" inHandsMaxFillLevels: 1 - - type: ExaminableSolution - solution: drink - type: FitsInDispenser solution: drink - type: Tag @@ -159,7 +157,7 @@ - type: SolutionContainerManager solutions: drink: - maxVol: 20 # 20 might be too much + maxVol: 20 # might be too much - type: Item size: Tiny - type: SolutionTransfer From 2c54d3bfc4fae103747153d91c8b0c576598c1de Mon Sep 17 00:00:00 2001 From: iaada Date: Tue, 29 Jul 2025 14:42:49 -0500 Subject: [PATCH 27/41] InjectComp --- .../Entities/Objects/Consumable/Drinks/drinks_base.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml index 9856338fb1..313e9c34e2 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml @@ -26,6 +26,10 @@ solution: drink - type: DrainableSolution solution: drink + - type: InjectableSolution # Injectors (syringe) will fallback to RefillableSolution. This adds support for hyposprays and injector anomalies. + solution: drink +# - type: SolutionItemStatus todo Currently does not respect if the solution has ExaminableSolution and always shows the reagent count +# solution: drink - type: SolutionContainerManager solutions: drink: @@ -117,6 +121,8 @@ inHandsFillBaseName: -fill- - type: ExaminableSolution # If you can see the fill levels, you can see the unit count solution: drink + - type: SolutionItemStatus # Remove when comp is uncommented on DrinkBase + solution: drink # Layered visualizer for an entity with fill levels - type: entity @@ -172,6 +178,8 @@ inHandsFillBaseName: -fill- - type: ExaminableSolution # If you can see the fill levels, you can see the unit count solution: drink + - type: SolutionItemStatus # Remove when comp is uncommented on DrinkBase + solution: drink # Visualizer for an openable entity with fill levels, already filled - type: entity From c473ee66671560e557dcb59ba5520d063bf8947b Mon Sep 17 00:00:00 2001 From: iaada Date: Tue, 29 Jul 2025 15:15:24 -0500 Subject: [PATCH 28/41] hard life being so indecisive --- Resources/Prototypes/Damage/modifier_sets.yml | 12 +++++++----- .../Consumable/Drinks/drinks_base_materials.yml | 2 +- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/Resources/Prototypes/Damage/modifier_sets.yml b/Resources/Prototypes/Damage/modifier_sets.yml index cfae9d916a..cfb88c6a26 100644 --- a/Resources/Prototypes/Damage/modifier_sets.yml +++ b/Resources/Prototypes/Damage/modifier_sets.yml @@ -155,13 +155,15 @@ flatReductions: Blunt: 5 +# Generally quite fragile - type: damageModifierSet - id: FlimsyWood # aka Cardboard + id: Cardboard coefficients: - Blunt: 0.8 - Slash: 2.0 - Piercing: 0.5 # poking holes in cardboard doesn't do much - Heat: 2.0 + Blunt: 1.3 + Slash: 1.3 + Piercing: 0.3 # poking holes in cardboard doesn't do much + Heat: 2.0 # it's wood so it burns + Structural: 1.3 - type: damageModifierSet id: Web # Very flammable, can be easily hacked and slashed, but shooting or hitting it is another story. diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base_materials.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base_materials.yml index b59d3a961f..7233df4415 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base_materials.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base_materials.yml @@ -131,7 +131,7 @@ components: - type: Damageable damageContainer: Inorganic - damageModifierSet: FlimsyWood + damageModifierSet: Cardboard - type: Destructible thresholds: - trigger: # Overkill threshold From e58103bac643c7475e8563f1ea9437622db6d649 Mon Sep 17 00:00:00 2001 From: iaada Date: Tue, 29 Jul 2025 18:03:03 -0500 Subject: [PATCH 29/41] more solution status --- .../Entities/Objects/Consumable/Drinks/drinks_cups.yml | 4 ++++ .../Entities/Objects/Consumable/Drinks/drinks_metamorphic.yml | 4 +++- .../Entities/Objects/Consumable/Drinks/drinks_special.yml | 4 ++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml index e445abb88c..d6ad3c65f9 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml @@ -40,6 +40,8 @@ fillBaseName: icon- - type: ExaminableSolution # If you can see the fill levels, you can see the unit count solution: drink + - type: SolutionItemStatus # Remove when comp is uncommented on DrinkBase or DrinkVisualsFill is added as a base + solution: drink ## Misc Cups @@ -127,6 +129,8 @@ - HEAD quickEquip: false sprite: Clothing/Head/Hats/party_water_cup.rsi + - type: SolutionItemStatus # Remove when comp is uncommented on DrinkBase or DrinkVisualsFill is added as a base + solution: drink # Mugs - type: entity diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_metamorphic.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_metamorphic.yml index 427943a029..8c1029a9f4 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_metamorphic.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_metamorphic.yml @@ -4,7 +4,7 @@ # Transformable container - normal glass - type: entity - parent: [DrinkBaseCup, DrinkBaseMaterialGlass] + parent: [DrinkBaseCup, DrinkBaseMaterialGlass] # todo parent to DrinkVisualsFillOverlay after in-hands are added id: DrinkGlass name: metamorphic glass description: A metamorphic glass that automagically turns into a glass appropriate for the drink within. There's a sanded off patent number on the bottom. @@ -38,6 +38,8 @@ - DrinkCup # Do these tags - DrinkGlass # even do anything? - type: TransformableContainer + - type: SolutionItemStatus # Remove when comp is uncommented on DrinkBase or DrinkVisualsFillOverlay is added + solution: drink - type: entity parent: DrinkGlass diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml index cb5d71665d..42bc056d37 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml @@ -147,6 +147,8 @@ mixOnInteract: false reactionTypes: - Shake + - type: SolutionItemStatus # Remove when comp is uncommented on DrinkBase + solution: drink - type: entity parent: [DrinkBase, DrinkBaseMaterialMetal] @@ -172,6 +174,8 @@ - type: PhysicalComposition materialComposition: Steel: 20 + - type: SolutionItemStatus # Remove when comp is uncommented on DrinkBase + solution: drink - type: entity parent: [DrinkBase, DrinkBaseMaterialStrongMetal, DrinkVisualsFill] From 6cdf16e1fdf79e27540897abf94e9e23d309ea89 Mon Sep 17 00:00:00 2001 From: iaada Date: Thu, 31 Jul 2025 17:38:39 -0500 Subject: [PATCH 30/41] pre-plan for more sounds --- Resources/Prototypes/Damage/modifier_sets.yml | 10 ------ .../Prototypes/Entities/Debugging/drugs.yml | 2 +- .../Consumable/Drinks/drinks-cartons.yml | 2 +- .../Objects/Consumable/Drinks/drinks_base.yml | 13 ++------ .../Drinks/drinks_base_materials.yml | 33 +++++-------------- .../Drinks/drinks_bottles_glass.yml | 28 ++++++++++++++-- .../Drinks/drinks_bottles_plastic.yml | 2 +- .../Objects/Consumable/Drinks/drinks_cans.yml | 2 +- .../Objects/Consumable/Drinks/drinks_cups.yml | 10 +++--- .../Consumable/Drinks/drinks_flasks.yml | 4 +-- .../Objects/Consumable/Drinks/drinks_fun.yml | 6 ++-- .../Consumable/Drinks/drinks_metamorphic.yml | 2 +- .../Consumable/Drinks/drinks_special.yml | 14 ++++---- 13 files changed, 57 insertions(+), 71 deletions(-) diff --git a/Resources/Prototypes/Damage/modifier_sets.yml b/Resources/Prototypes/Damage/modifier_sets.yml index cfb88c6a26..35a5f49134 100644 --- a/Resources/Prototypes/Damage/modifier_sets.yml +++ b/Resources/Prototypes/Damage/modifier_sets.yml @@ -155,16 +155,6 @@ flatReductions: Blunt: 5 -# Generally quite fragile -- type: damageModifierSet - id: Cardboard - coefficients: - Blunt: 1.3 - Slash: 1.3 - Piercing: 0.3 # poking holes in cardboard doesn't do much - Heat: 2.0 # it's wood so it burns - Structural: 1.3 - - type: damageModifierSet id: Web # Very flammable, can be easily hacked and slashed, but shooting or hitting it is another story. coefficients: diff --git a/Resources/Prototypes/Entities/Debugging/drugs.yml b/Resources/Prototypes/Entities/Debugging/drugs.yml index 473e370625..2bb8fdae71 100644 --- a/Resources/Prototypes/Entities/Debugging/drugs.yml +++ b/Resources/Prototypes/Entities/Debugging/drugs.yml @@ -1,5 +1,5 @@ - type: entity - parent: [DrinkBase, DrinkBaseMaterialGlass] + parent: [DrinkBaseMaterialGlass, DrinkBase] id: DrinkMeth name: meth # beer it is. coffee. beer? coff-ee? be-er? c-o... b-e description: Just a whole glass of meth. diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks-cartons.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks-cartons.yml index 5abc7d0ef4..4a5991d799 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks-cartons.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks-cartons.yml @@ -1,6 +1,6 @@ - type: entity abstract: true - parent: [ DrinkBase, DrinkBaseMaterialCardboard, DrinkBaseOpenable, DrinkVisualsOpenable ] + parent: [ DrinkBaseMaterialCardboard, DrinkBase, DrinkBaseOpenable, DrinkVisualsOpenable ] id: DrinkCartonBaseLargeFull # todo rename DrinkCartonBaseFull to match bottles suffix: Full components: diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml index 313e9c34e2..0cd822bff4 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml @@ -28,7 +28,7 @@ solution: drink - type: InjectableSolution # Injectors (syringe) will fallback to RefillableSolution. This adds support for hyposprays and injector anomalies. solution: drink -# - type: SolutionItemStatus todo Currently does not respect if the solution has ExaminableSolution and always shows the reagent count +# - type: SolutionItemStatus todo Currently always shows the reagent count. Should show vague fill levels without ExaminableSolution # solution: drink - type: SolutionContainerManager solutions: @@ -155,9 +155,9 @@ # Visualizer for an openable entity with fill levels - type: entity abstract: true + parent: [DrinkVisualsOpenable, DrinkVisualsFill] id: DrinkVisualsAll components: - - type: Appearance - type: GenericVisualizer visuals: enum.OpenableVisuals.Opened: @@ -171,15 +171,6 @@ - state: fill-1 map: ["enum.SolutionContainerLayers.Fill"] visible: false - - type: SolutionContainerVisuals - maxFillLevels: 5 - fillBaseName: fill- - inHandsMaxFillLevels: 3 - inHandsFillBaseName: -fill- - - type: ExaminableSolution # If you can see the fill levels, you can see the unit count - solution: drink - - type: SolutionItemStatus # Remove when comp is uncommented on DrinkBase - solution: drink # Visualizer for an openable entity with fill levels, already filled - type: entity diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base_materials.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base_materials.yml index 7233df4415..6b215c5d69 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base_materials.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base_materials.yml @@ -1,5 +1,5 @@ ## Material costs to apply to a drink -# Adding one of these bases as the first parent will override a previous inherited material +# These bases should always be the first parent # Fragile glass - type: entity @@ -42,6 +42,9 @@ damage: types: Blunt: 5 +# - type: EmitSoundOnLand TODO other materials need a sound +# sound: +# collection: GlassCrack - type: PhysicalComposition materialComposition: Glass: 25 @@ -49,11 +52,9 @@ # Porcelain (like glass but no shard) - type: entity abstract: true + parent: DrinkBaseMaterialGlass id: DrinkBaseMaterialPorcelain components: - - type: Damageable - damageContainer: Inorganic - damageModifierSet: FlimsyGlass - type: Destructible thresholds: - trigger: # Overkill threshold @@ -72,15 +73,6 @@ - !type:SpillBehavior { } - !type:DoActsBehavior acts: [ "Destruction" ] - - type: DamageOnLand - ignoreResistances: true - damage: - types: - Blunt: 5 # so fragile it smashes when thrown - - type: DamageOtherOnHit - damage: - types: - Blunt: 5 - type: PhysicalComposition materialComposition: Glass: 10 # Trace amounts of glass I guess. Important for overriding inheritance @@ -92,7 +84,7 @@ components: - type: Damageable damageContainer: Inorganic -#TODO damageModifierSet: FlimsyPlastic +# damageModifierSet: FlimsyPlastic TODO - type: Destructible thresholds: - trigger: # Overkill threshold @@ -131,7 +123,7 @@ components: - type: Damageable damageContainer: Inorganic - damageModifierSet: Cardboard +# damageModifierSet: Cardboard TODO - type: Destructible thresholds: - trigger: # Overkill threshold @@ -205,10 +197,10 @@ # strong metal - type: entity abstract: true + parent: DrinkBaseMaterialMetal id: DrinkBaseMaterialStrongMetal components: - type: Damageable - damageContainer: Inorganic damageModifierSet: Metallic - type: Destructible thresholds: @@ -228,15 +220,6 @@ - !type:SpillBehavior { } - !type:DoActsBehavior acts: [ "Destruction" ] - - type: DamageOnLand - ignoreResistances: true - damage: - types: - Blunt: 1 - - type: DamageOtherOnHit - damage: - types: - Blunt: 5 - type: PhysicalComposition materialComposition: Steel: 300 diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_glass.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_glass.yml index b1d29188a4..aefa55d67a 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_glass.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_glass.yml @@ -2,7 +2,7 @@ - type: entity abstract: true - parent: [ DrinkBase, DrinkBaseMaterialGlass, DrinkBaseOpenable ] + parent: [ DrinkBaseMaterialGlass, DrinkBase, DrinkBaseOpenable ] id: DrinkBottleGlassBaseFull suffix: Full components: @@ -29,6 +29,30 @@ - type: Tag tags: - DrinkBottle + - type: Destructible # Same as parent, but spawns BrokenBottle instead of ShardGlass + thresholds: + - trigger: # Overkill threshold + !type:DamageTrigger + damage: 200 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - 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: entity abstract: true @@ -88,7 +112,6 @@ map: ["enum.SolutionContainerLayers.Fill"] - type: SolutionContainerVisuals maxFillLevels: 6 - fillBaseName: fill- - type: entity parent: [DrinkVisualsOpenable, DrinkBottleGlassBaseFull] @@ -243,7 +266,6 @@ map: ["enum.SolutionContainerLayers.Fill"] - type: SolutionContainerVisuals maxFillLevels: 6 - fillBaseName: fill- - type: entity parent: [DrinkVisualsAllFilled, DrinkBottleGlassBaseFull] diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_plastic.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_plastic.yml index 1a12f11e34..3343ad42ce 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_plastic.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_plastic.yml @@ -1,6 +1,6 @@ - type: entity abstract: true - parent: [ DrinkBase, DrinkBaseMaterialPlastic, DrinkBaseOpenable ] + parent: [ DrinkBaseMaterialPlastic, DrinkBase, DrinkBaseOpenable ] id: DrinkBottlePlasticBaseFull suffix: Full components: diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml index 0318b05c5c..3102ffc522 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml @@ -1,7 +1,7 @@ # 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: [ DrinkBase, DrinkBaseMaterialMetal, DrinkBaseOpenable, DrinkVisualsOpenable ] + parent: [ DrinkBaseMaterialMetal, DrinkBase, DrinkBaseOpenable, DrinkVisualsOpenable ] id: DrinkCanBaseFull suffix: Full components: diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml index d6ad3c65f9..b4687d081f 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml @@ -22,7 +22,7 @@ # A mug is a type of cup.[2] - type: entity abstract: true - parent: [DrinkBaseCup, DrinkBaseMaterialPorcelain] # todo Should use DrinkVisualsFill, but inheritors have no in-hand and state names are wrong + parent: [ DrinkBaseMaterialPorcelain, DrinkBaseCup ] # todo Should use DrinkVisualsFill, but inheritors have no in-hand and state names are wrong id: DrinkBaseMug name: mug description: A mug. @@ -46,7 +46,7 @@ ## Misc Cups - type: entity - parent: [DrinkBaseCup, DrinkBaseMaterialGold] + parent: [DrinkBaseMaterialGold, DrinkBaseCup] id: DrinkGoldenCup name: golden cup description: A golden cup. @@ -73,7 +73,7 @@ maxFillLevels: 4 - type: entity - parent: [ DrinkBaseCup, DrinkBaseMaterialGlass, DrinkVisualsFillOverlay ] + parent: [ DrinkBaseMaterialGlass, DrinkBaseCup, DrinkVisualsFillOverlay ] id: DrinkGlassCoupeShaped name: coupe glass description: A classic thin neck coupe glass, the icon of fragile labels on crates around the galaxy. @@ -93,7 +93,7 @@ inHandsMaxFillLevels: 1 - type: entity - parent: [DrinkBaseCup, DrinkBaseMaterialCardboard] # TODO should use DrinkVisualsFill but state names are wrong and no inhand + parent: [DrinkBaseMaterialCardboard, DrinkBaseCup] # TODO should use DrinkVisualsFill but state names are wrong and no inhand id: DrinkWaterCup name: water cup description: A paper water cup. @@ -351,7 +351,7 @@ # TODO this needs fill levels - type: entity - parent: [DrinkBaseCup, DrinkBaseMaterialPlastic] + parent: [DrinkBaseMaterialPlastic, DrinkBaseCup] id: DrinkLean name: grape juice description: Damn, no fun allowed. diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_flasks.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_flasks.yml index e40ef2188e..17f9e47fe6 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_flasks.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_flasks.yml @@ -1,6 +1,6 @@ - type: entity abstract: true - parent: [DrinkBase, DrinkBaseMaterialStrongMetal, DrinkBaseOpenable, DrinkVisualsOpenable] + parent: [DrinkBaseMaterialStrongMetal, DrinkBase, DrinkBaseOpenable, DrinkVisualsOpenable] id: FlaskBase components: - type: SolutionContainerManager @@ -21,7 +21,7 @@ # Flasks - type: entity - parent: [DrinkBase, DrinkBaseMaterialStrongMetal] + parent: [DrinkBaseMaterialStrongMetal, DrinkBase] id: DrinkFlaskOld name: old flask description: A decrepit old flask, its lid seems to be missing. diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_fun.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_fun.yml index 180030d78a..5e670117d7 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_fun.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_fun.yml @@ -1,5 +1,5 @@ - type: entity - parent: [ DrinkBase, DrinkBaseMaterialPlastic, DrinkBaseOpenable, DrinkVisualsOpenable ] # todo Should use DrinkVisualAll, but sprite has no inhand + parent: [ DrinkBaseMaterialPlastic, DrinkBase, DrinkBaseOpenable, DrinkVisualsOpenable ] # todo Should use DrinkVisualAll, but sprite has no inhand id: DrinkSpaceGlue name: space glue tube description: High performance glue intended for maintenance of extremely complex mechanical equipment. DON'T DRINK! @@ -34,7 +34,7 @@ solution: drink - type: entity - parent: [ DrinkBase, DrinkBaseMaterialPlastic, DrinkBaseOpenable, DrinkVisualsOpenable ] # Should use DrinkVisualAll, but sprite has no inhand + parent: [ DrinkBaseMaterialPlastic, DrinkBase, DrinkBaseOpenable, DrinkVisualsOpenable ] # Should use DrinkVisualAll, but sprite has no inhand id: DrinkSpaceLube name: space lube tube description: High performance lubricant intended for maintenance of extremely complex mechanical equipment. @@ -88,7 +88,7 @@ Quantity: 200 - type: entity - parent: [DrinkBase, DrinkBaseMaterialGlass] + parent: [DrinkBaseMaterialGlass, DrinkBase] id: DrinkJarWhat name: jar of something description: You can't really tell what this is. diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_metamorphic.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_metamorphic.yml index 8c1029a9f4..a712fe45f3 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_metamorphic.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_metamorphic.yml @@ -4,7 +4,7 @@ # Transformable container - normal glass - type: entity - parent: [DrinkBaseCup, DrinkBaseMaterialGlass] # todo parent to DrinkVisualsFillOverlay after in-hands are added + parent: [DrinkBaseMaterialGlass, DrinkBaseCup] # todo parent to DrinkVisualsFillOverlay after in-hands are added id: DrinkGlass name: metamorphic glass description: A metamorphic glass that automagically turns into a glass appropriate for the drink within. There's a sanded off patent number on the bottom. diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml index 42bc056d37..fb0e114106 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml @@ -1,5 +1,5 @@ - type: entity - parent: [DrinkBase, DrinkBaseMaterialGlass, DrinkVisualsFillOverlay] + parent: [DrinkBaseMaterialGlass, DrinkBase, DrinkVisualsFillOverlay] id: DrinkShotGlass name: shot glass description: Perfect for slamming down onto the table angrily. @@ -31,7 +31,7 @@ - DrinkGlass - type: entity - parent: [DrinkBase, DrinkBaseMaterialMetal] + parent: [DrinkBaseMaterialMetal, DrinkBase] id: DrinkIceBucket name: ice bucket description: A special bucket of refreshy ice. Prohibited use for challenge with the same name! @@ -50,7 +50,7 @@ Steel: 75 - type: entity - parent: [DrinkBase, DrinkBaseMaterialPorcelain] + parent: [DrinkBaseMaterialPorcelain, DrinkBase] id: DrinkTeapot name: teapot # short and stout description: An elegant teapot. It simply oozes class. @@ -123,7 +123,7 @@ # Bartender tools - type: entity - parent: [DrinkBase, DrinkBaseMaterialStrongMetal] + parent: [DrinkBaseMaterialStrongMetal, DrinkBase] id: DrinkShaker name: shaker description: The trusty mixing buddy of the bartender. @@ -151,7 +151,7 @@ solution: drink - type: entity - parent: [DrinkBase, DrinkBaseMaterialMetal] + parent: [DrinkBaseMaterialMetal, DrinkBase] id: DrinkJigger name: jigger description: Like a shaker, but smaller. Used to control the amount of ingredients. @@ -178,7 +178,7 @@ solution: drink - type: entity - parent: [DrinkBase, DrinkBaseMaterialStrongMetal, DrinkVisualsFill] + parent: [DrinkBaseMaterialStrongMetal, DrinkBase, DrinkVisualsFill] id: Pitcher name: metal pitcher description: A stainless steel insulated pitcher. Everyone's best friend in the morning. @@ -204,7 +204,7 @@ - type: entity abstract: true - parent: [DrinkBase, DrinkBaseMaterialGlass] + parent: [DrinkBaseMaterialGlass, DrinkBase] id: DrinkShakeBase description: '' components: From af3af9a14134899e555f26cf17873f285c858b2c Mon Sep 17 00:00:00 2001 From: iaada Date: Tue, 5 Aug 2025 18:14:09 -0500 Subject: [PATCH 31/41] update for #39362 and #39363 --- .../Objects/Consumable/Drinks/drinks_base.yml | 20 +++--- .../Objects/Consumable/Drinks/drinks_cups.yml | 8 --- .../Objects/Consumable/Drinks/drinks_fun.yml | 63 +++++++++---------- .../Consumable/Drinks/drinks_metamorphic.yml | 4 -- .../Consumable/Drinks/drinks_special.yml | 12 ++-- 5 files changed, 49 insertions(+), 58 deletions(-) diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml index 0cd822bff4..4fedc36552 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml @@ -1,6 +1,6 @@ # When adding new drinks also add to random spawner located in Resources\Prototypes\Entities\Markers\Spawners\Random\Food_Drinks\ -# A drink is an easily and freely accessible solution like cups, teapots, cans, flasks, bottles, or beakers. +# Inheritors are an easily and freely accessible solution like cups, teapots, cans, flasks, bottles, or beakers. - type: entity abstract: true parent: BaseItem @@ -26,10 +26,12 @@ solution: drink - type: DrainableSolution solution: drink - - type: InjectableSolution # Injectors (syringe) will fallback to RefillableSolution. This adds support for hyposprays and injector anomalies. + - type: InjectableSolution # Injectors (syringe) will fallback to RefillableSolution. This adds support for hyposprays and liquid anomalies. + solution: drink + - type: ExaminableSolution + solution: drink + - type: SolutionItemStatus solution: drink -# - type: SolutionItemStatus todo Currently always shows the reagent count. Should show vague fill levels without ExaminableSolution -# solution: drink - type: SolutionContainerManager solutions: drink: @@ -101,6 +103,9 @@ layers: - state: icon map: ["enum.OpenableVisuals.Layer"] + - type: ExaminableSolution + opaque: true # If you can't see the fill levels on the sprite, we can assume it's opaque + heldOnly: true # If it's opaque, you probably can't see through the open lid from a distance # Basic visualizer for an entity with fill levels - type: entity @@ -119,10 +124,6 @@ fillBaseName: fill- inHandsMaxFillLevels: 3 inHandsFillBaseName: -fill- - - type: ExaminableSolution # If you can see the fill levels, you can see the unit count - solution: drink - - type: SolutionItemStatus # Remove when comp is uncommented on DrinkBase - solution: drink # Layered visualizer for an entity with fill levels - type: entity @@ -171,6 +172,9 @@ - state: fill-1 map: ["enum.SolutionContainerLayers.Fill"] visible: false + - type: ExaminableSolution + opaque: false # If you can see the fill levels it's not opaque + heldOnly: false # Visualizer for an openable entity with fill levels, already filled - type: entity diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml index b4687d081f..e1fe78c433 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml @@ -38,10 +38,6 @@ - type: SolutionContainerVisuals maxFillLevels: 3 fillBaseName: icon- - - type: ExaminableSolution # If you can see the fill levels, you can see the unit count - solution: drink - - type: SolutionItemStatus # Remove when comp is uncommented on DrinkBase or DrinkVisualsFill is added as a base - solution: drink ## Misc Cups @@ -120,8 +116,6 @@ - DrinkCup - WhitelistChameleon - type: Appearance - - type: ExaminableSolution # If you can see the fill levels, you can see the unit count - solution: drink - type: TrashOnSolutionEmpty solution: drink - type: Clothing @@ -129,8 +123,6 @@ - HEAD quickEquip: false sprite: Clothing/Head/Hats/party_water_cup.rsi - - type: SolutionItemStatus # Remove when comp is uncommented on DrinkBase or DrinkVisualsFill is added as a base - solution: drink # Mugs - type: entity diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_fun.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_fun.yml index 5e670117d7..eb10493467 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_fun.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_fun.yml @@ -1,22 +1,40 @@ - type: entity + abstract: true parent: [ DrinkBaseMaterialPlastic, DrinkBase, DrinkBaseOpenable, DrinkVisualsOpenable ] # todo Should use DrinkVisualAll, but sprite has no inhand - id: DrinkSpaceGlue - name: space glue tube - description: High performance glue intended for maintenance of extremely complex mechanical equipment. DON'T DRINK! + id: BaseSqueezeBottle components: - type: Openable sound: collection: packetOpenSounds - type: Sprite - sprite: Objects/Consumable/Drinks/glue-tube.rsi layers: - - state: icon - map: ["enum.OpenableVisuals.Layer"] - - state: fill6 - map: [ "enum.SolutionContainerLayers.Fill" ] # already has liquid, so no visible: false - - state: icon-front - map: [ "enum.SolutionContainerLayers.Overlay" ] - - type: Glue + - state: icon + map: ["enum.OpenableVisuals.Layer"] + - state: fill6 + map: [ "enum.SolutionContainerLayers.Fill" ] # already has liquid, so no visible: false + - state: icon-front + map: [ "enum.SolutionContainerLayers.Overlay" ] + - type: SolutionContainerManager + solutions: + drink: + maxVol: 30 + - type: SolutionContainerVisuals + maxFillLevels: 6 + fillBaseName: fill + - type: TrashOnSolutionEmpty + solution: drink + - type: ExaminableSolution # Remove when DrinkVisualAll is added + opaque: false + heldOnly: false + +- type: entity + parent: BaseSqueezeBottle + id: DrinkSpaceGlue + name: space glue tube + description: High performance glue intended for maintenance of extremely complex mechanical equipment. DON'T DRINK! + components: + - type: Sprite + sprite: Objects/Consumable/Drinks/glue-tube.rsi - type: SolutionContainerManager solutions: drink: @@ -24,33 +42,19 @@ reagents: - ReagentId: SpaceGlue Quantity: 30 - - type: SolutionContainerVisuals - maxFillLevels: 6 - fillBaseName: fill - type: Tag tags: - DrinkSpaceGlue - - type: TrashOnSolutionEmpty - solution: drink + - type: Glue - type: entity - parent: [ DrinkBaseMaterialPlastic, DrinkBase, DrinkBaseOpenable, DrinkVisualsOpenable ] # Should use DrinkVisualAll, but sprite has no inhand + parent: BaseSqueezeBottle id: DrinkSpaceLube name: space lube tube description: High performance lubricant intended for maintenance of extremely complex mechanical equipment. components: - - type: Openable - sound: - collection: packetOpenSounds - type: Sprite sprite: Objects/Consumable/Drinks/lube-tube.rsi - layers: - - state: icon - map: ["enum.OpenableVisuals.Layer"] - - state: fill6 - map: [ "enum.SolutionContainerLayers.Fill" ] # already has liquid, so no visible: false - - state: icon-front - map: [ "enum.SolutionContainerLayers.Overlay" ] - type: SolutionContainerManager solutions: drink: @@ -58,12 +62,7 @@ reagents: - ReagentId: SpaceLube Quantity: 30 - - type: SolutionContainerVisuals - maxFillLevels: 6 - fillBaseName: fill - type: Lube - - type: TrashOnSolutionEmpty - solution: drink # Find your nearest clown and give them a gift :o) - type: entity diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_metamorphic.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_metamorphic.yml index a712fe45f3..22054741e3 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_metamorphic.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_metamorphic.yml @@ -31,15 +31,11 @@ metamorphicDefaultSprite: sprite: Objects/Consumable/Drinks/glass_clear.rsi state: icon - - type: ExaminableSolution - solution: drink - type: Tag tags: - DrinkCup # Do these tags - DrinkGlass # even do anything? - type: TransformableContainer - - type: SolutionItemStatus # Remove when comp is uncommented on DrinkBase or DrinkVisualsFillOverlay is added - solution: drink - type: entity parent: DrinkGlass diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml index fb0e114106..27d568eb82 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml @@ -134,6 +134,9 @@ maxVol: 100 - type: FitsInDispenser solution: drink + - type: ExaminableSolution + heldOnly: true + exactVolume: true - type: Sprite sprite: Objects/Consumable/Drinks/shaker.rsi state: icon @@ -147,8 +150,6 @@ mixOnInteract: false reactionTypes: - Shake - - type: SolutionItemStatus # Remove when comp is uncommented on DrinkBase - solution: drink - type: entity parent: [DrinkBaseMaterialMetal, DrinkBase] @@ -160,22 +161,21 @@ solutions: drink: maxVol: 20 # might be too much - - type: Item - size: Tiny - type: SolutionTransfer canChangeTransferAmount: true minTransferAmount: 1 maxTransferAmount: 20 - type: FitsInDispenser solution: drink + - type: ExaminableSolution + heldOnly: true + exactVolume: true - type: Sprite sprite: Objects/Consumable/Drinks/jigger.rsi state: icon - type: PhysicalComposition materialComposition: Steel: 20 - - type: SolutionItemStatus # Remove when comp is uncommented on DrinkBase - solution: drink - type: entity parent: [DrinkBaseMaterialStrongMetal, DrinkBase, DrinkVisualsFill] From 5d6c020e2a35ed6cab8397578fb4512af90edc25 Mon Sep 17 00:00:00 2001 From: iaada Date: Tue, 5 Aug 2025 23:35:57 -0500 Subject: [PATCH 32/41] couple more changes --- .../Entities/Objects/Consumable/Drinks/drinks_base.yml | 4 ++-- .../Entities/Objects/Consumable/Drinks/drinks_fun.yml | 2 +- .../Entities/Objects/Consumable/Drinks/drinks_special.yml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml index 4fedc36552..eb5a3e367e 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml @@ -104,7 +104,7 @@ - state: icon map: ["enum.OpenableVisuals.Layer"] - type: ExaminableSolution - opaque: true # If you can't see the fill levels on the sprite, we can assume it's opaque + examinableWhileClosed: false # If you can't see the fill levels on the sprite, we can assume it's opaque heldOnly: true # If it's opaque, you probably can't see through the open lid from a distance # Basic visualizer for an entity with fill levels @@ -173,7 +173,7 @@ map: ["enum.SolutionContainerLayers.Fill"] visible: false - type: ExaminableSolution - opaque: false # If you can see the fill levels it's not opaque + examinableWhileClosed: true # If you can see the fill levels it's not opaque heldOnly: false # Visualizer for an openable entity with fill levels, already filled diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_fun.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_fun.yml index eb10493467..504c336a21 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_fun.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_fun.yml @@ -24,7 +24,7 @@ - type: TrashOnSolutionEmpty solution: drink - type: ExaminableSolution # Remove when DrinkVisualAll is added - opaque: false + examinableWhileClosed: true heldOnly: false - type: entity diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml index 27d568eb82..63f65505de 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml @@ -160,7 +160,7 @@ - type: SolutionContainerManager solutions: drink: - maxVol: 20 # might be too much + maxVol: 20 - type: SolutionTransfer canChangeTransferAmount: true minTransferAmount: 1 From 26509b879b19f11500e5b328c027939a6248fc5e Mon Sep 17 00:00:00 2001 From: iaada Date: Wed, 6 Aug 2025 11:43:47 -0500 Subject: [PATCH 33/41] lint after losing a LocId in the merge --- .../en-US/nutrition/components/drink-component.ftl | 2 ++ .../Entities/Objects/Consumable/Drinks/drinks_base.yml | 6 ++++-- .../Consumable/Drinks/drinks_base_materials.yml | 3 ++- .../Objects/Consumable/Drinks/drinks_bottles_glass.yml | 10 +++++----- 4 files changed, 13 insertions(+), 8 deletions(-) diff --git a/Resources/Locale/en-US/nutrition/components/drink-component.ftl b/Resources/Locale/en-US/nutrition/components/drink-component.ftl index ab458746dd..d83252d842 100644 --- a/Resources/Locale/en-US/nutrition/components/drink-component.ftl +++ b/Resources/Locale/en-US/nutrition/components/drink-component.ftl @@ -2,6 +2,8 @@ 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! diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml index eb5a3e367e..aeabba5f5a 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml @@ -15,7 +15,8 @@ types: Blunt: 0 - type: DnaSubstanceTrace - - type: Drink + - type: Drink # Namesake. You are able to directly drink from this entity. + solution: drink - type: Spillable solution: drink - type: MixableSolution @@ -26,7 +27,7 @@ solution: drink - type: DrainableSolution solution: drink - - type: InjectableSolution # Injectors (syringe) will fallback to RefillableSolution. This adds support for hyposprays and liquid anomalies. + - type: InjectableSolution # Injectors (syringe) will fall back to RefillableSolution. This adds support for hyposprays and liquid anomalies. solution: drink - type: ExaminableSolution solution: drink @@ -80,6 +81,7 @@ - type: Sprite layers: - state: icon_open + map: ["enum.OpenableVisuals.Layer"] - type: Openable opened: true - type: Sealable diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base_materials.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base_materials.yml index 6b215c5d69..9e3ddcb7bc 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base_materials.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base_materials.yml @@ -1,5 +1,6 @@ ## Material costs to apply to a drink -# These bases should always be the first parent +# These bases should always be the parented before DrinkBase, or before a prototype inheriting DrinkBase. +# - That way they override any previously inherited material, and material specific sounds aren't overridden by BaseItem. # Fragile glass - type: entity diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_glass.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_glass.yml index aefa55d67a..ccaf298719 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_glass.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_glass.yml @@ -149,7 +149,7 @@ - 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 + examineTextUnsealed: "drink-component-on-examine-is-unsealed-no-cork" # tell the player why it can't close - type: entity parent: [DrinkVisualsAllFilled, DrinkBottleGlassBaseFull] @@ -431,7 +431,7 @@ - type: Openable closeable: false # sprite is just a beer bottle, but this should be removed when there's a more appropriate sprite - type: Sealable - examineTextUnsealed: drink-component-on-examine-is-unsealed-crown-cap # tell the player why it can't close + examineTextUnsealed: "drink-component-on-examine-is-unsealed-crown-cap" # tell the player why it can't close - type: Tag tags: - Beer @@ -457,7 +457,7 @@ - type: Openable closeable: false # sprite is just a beer bottle, but this should be removed when there's a more appropriate sprite - type: Sealable - examineTextUnsealed: drink-component-on-examine-is-unsealed-crown-cap # tell the player why it can't close + examineTextUnsealed: "drink-component-on-examine-is-unsealed-crown-cap" # tell the player why it can't close # Small glass bottles @@ -481,7 +481,7 @@ - type: Openable closeable: false # can't put the cap back on - type: Sealable - examineTextUnsealed: drink-component-on-examine-is-unsealed-crown-cap # tell the player why it can't close + examineTextUnsealed: "drink-component-on-examine-is-unsealed-crown-cap" # tell the player why it can't close - type: Tag tags: - Beer @@ -505,7 +505,7 @@ - type: Openable closeable: false # can't put the cap back on - type: Sealable - examineTextUnsealed: drink-component-on-examine-is-unsealed-crown-cap # tell the player why it can't close + examineTextUnsealed: "drink-component-on-examine-is-unsealed-crown-cap" # tell the player why it can't close - type: entity parent: [DrinkVisualsOpenable, DrinkBottleGlassSmallBaseFull] From 0bd8ad43ab2f364053d83a272412a6e261061412 Mon Sep 17 00:00:00 2001 From: iaada Date: Wed, 6 Aug 2025 12:52:18 -0500 Subject: [PATCH 34/41] fixed conflicts --- .../en-US/nutrition/components/sealable-component.ftl | 2 ++ .../Entities/Objects/Consumable/Drinks/drinks_base.yml | 4 +++- .../Objects/Consumable/Drinks/drinks_bottles_glass.yml | 10 +++++----- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/Resources/Locale/en-US/nutrition/components/sealable-component.ftl b/Resources/Locale/en-US/nutrition/components/sealable-component.ftl index e826e174ef..be37b91ce2 100644 --- a/Resources/Locale/en-US/nutrition/components/sealable-component.ftl +++ b/Resources/Locale/en-US/nutrition/components/sealable-component.ftl @@ -1,2 +1,4 @@ sealable-component-on-examine-is-sealed = The seal is intact. sealable-component-on-examine-is-unsealed = The seal is broken. +sealable-component-on-examine-is-unsealed-no-cork = The seal is broken, and the cork is gone. +sealable-component-on-examine-is-unsealed-crown-cap = The seal is broken, and the crown cap is bent. diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml index aeabba5f5a..a856e91611 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml @@ -15,8 +15,10 @@ types: Blunt: 0 - type: DnaSubstanceTrace - - type: Drink # Namesake. You are able to directly drink from this entity. + - type: Edible + edible: Drink # Namesake. This entity is a sort of cup you can drink directly from. solution: drink + destroyOnEmpty: false - type: Spillable solution: drink - type: MixableSolution diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_glass.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_glass.yml index ccaf298719..ec6bdf8002 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_glass.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_bottles_glass.yml @@ -149,7 +149,7 @@ - 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 + examineTextUnsealed: "sealable-component-on-examine-is-unsealed-no-cork" # tell the player why it can't close - type: entity parent: [DrinkVisualsAllFilled, DrinkBottleGlassBaseFull] @@ -431,7 +431,7 @@ - type: Openable closeable: false # sprite is just a beer bottle, but this should be removed when there's a more appropriate sprite - type: Sealable - examineTextUnsealed: "drink-component-on-examine-is-unsealed-crown-cap" # tell the player why it can't close + examineTextUnsealed: "sealable-component-on-examine-is-unsealed-crown-cap" # tell the player why it can't close - type: Tag tags: - Beer @@ -457,7 +457,7 @@ - type: Openable closeable: false # sprite is just a beer bottle, but this should be removed when there's a more appropriate sprite - type: Sealable - examineTextUnsealed: "drink-component-on-examine-is-unsealed-crown-cap" # tell the player why it can't close + examineTextUnsealed: "sealable-component-on-examine-is-unsealed-crown-cap" # tell the player why it can't close # Small glass bottles @@ -481,7 +481,7 @@ - type: Openable closeable: false # can't put the cap back on - type: Sealable - examineTextUnsealed: "drink-component-on-examine-is-unsealed-crown-cap" # tell the player why it can't close + examineTextUnsealed: "sealable-component-on-examine-is-unsealed-crown-cap" # tell the player why it can't close - type: Tag tags: - Beer @@ -505,7 +505,7 @@ - type: Openable closeable: false # can't put the cap back on - type: Sealable - examineTextUnsealed: "drink-component-on-examine-is-unsealed-crown-cap" # tell the player why it can't close + examineTextUnsealed: "sealable-component-on-examine-is-unsealed-crown-cap" # tell the player why it can't close - type: entity parent: [DrinkVisualsOpenable, DrinkBottleGlassSmallBaseFull] From 08cab003c26cd2db03f1f9bc2809c7e53e18624c Mon Sep 17 00:00:00 2001 From: iaada Date: Wed, 6 Aug 2025 13:07:19 -0500 Subject: [PATCH 35/41] cardboard modifier set --- .../Objects/Consumable/Drinks/drinks_base_materials.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base_materials.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base_materials.yml index 9e3ddcb7bc..7db03edbf5 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base_materials.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base_materials.yml @@ -124,7 +124,7 @@ components: - type: Damageable damageContainer: Inorganic -# damageModifierSet: Cardboard TODO + damageModifierSet: Card - type: Destructible thresholds: - trigger: # Overkill threshold From 4a803335d7ae7c93e57cb3eca0f74620f1920dd6 Mon Sep 17 00:00:00 2001 From: iaada Date: Wed, 6 Aug 2025 18:53:55 -0500 Subject: [PATCH 36/41] it's not microbalance if it's hidden in a huge diff --- .../Objects/Consumable/Drinks/drinks_special.yml | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml index 63f65505de..adc99f46ad 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml @@ -67,6 +67,8 @@ - type: FitsInDispenser solution: drink +# Probably shouldn't be here +# Also probably shouldn't let you put the cola back in, and should spawn deadly plastic rings after removing the last one - type: entity parent: BaseStorageItem id: DrinkCanPack @@ -78,22 +80,16 @@ - state: plastic-thingy - state: 6pack1 map: ["6pack1"] - visible: false - state: 6pack2 map: ["6pack2"] - visible: false - state: 6pack3 map: ["6pack3"] - visible: false - state: 6pack4 map: ["6pack4"] - visible: false - state: 6pack5 map: ["6pack5"] - visible: false - state: 6pack6 map: ["6pack6"] - visible: false - type: Item size: Normal - type: Storage @@ -135,8 +131,7 @@ - type: FitsInDispenser solution: drink - type: ExaminableSolution - heldOnly: true - exactVolume: true + heldOnly: true # Opaque, can't see inside from a distance - type: Sprite sprite: Objects/Consumable/Drinks/shaker.rsi state: icon From cf820cbf3ea5f6d92292bd48b95f8957a49a5be1 Mon Sep 17 00:00:00 2001 From: iaada Date: Fri, 8 Aug 2025 18:50:36 -0500 Subject: [PATCH 37/41] requested changes --- .../Consumable/Drinks/drinks-cartons.yml | 28 +++++++++---------- .../Objects/Consumable/Drinks/drinks_base.yml | 8 +++--- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks-cartons.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks-cartons.yml index 4a5991d799..ff5d7f10f4 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks-cartons.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks-cartons.yml @@ -1,7 +1,7 @@ - type: entity abstract: true parent: [ DrinkBaseMaterialCardboard, DrinkBase, DrinkBaseOpenable, DrinkVisualsOpenable ] - id: DrinkCartonBaseLargeFull # todo rename DrinkCartonBaseFull to match bottles + id: DrinkCartonBaseFull suffix: Full components: - type: Openable @@ -21,8 +21,8 @@ - type: entity abstract: true - parent: DrinkCartonBaseLargeFull - id: DrinkCartonBaseFull # todo rename DrinkCartonSmallBaseFull to match bottles + parent: DrinkCartonBaseFull + id: DrinkCartonSmallBaseFull components: - type: SolutionContainerManager solutions: @@ -33,7 +33,7 @@ - type: entity abstract: true - parent: DrinkCartonBaseLargeFull + parent: DrinkCartonBaseFull id: DrinkCartonBaseXtraLargeFull components: - type: SolutionContainerManager @@ -47,7 +47,7 @@ # Small carton - type: entity - parent: [DrinkBaseMaterialPlastic, DrinkCartonBaseFull] + parent: [DrinkBaseMaterialPlastic, DrinkCartonSmallBaseFull] id: DrinkJuiceLimeCarton name: lime juice description: Sweet-sour goodness. @@ -62,7 +62,7 @@ sprite: Objects/Consumable/Drinks/limejuice.rsi - type: entity - parent: DrinkCartonBaseFull + parent: DrinkCartonSmallBaseFull id: DrinkJuiceOrangeCarton name: orange juice description: Full of vitamins and deliciousness! @@ -77,7 +77,7 @@ sprite: Objects/Consumable/Drinks/orangejuice.rsi - type: entity - parent: DrinkCartonBaseFull + parent: DrinkCartonSmallBaseFull id: DrinkJuiceTomatoCarton name: tomato juice description: Well, at least it LOOKS like tomato juice. You can't tell with all that redness. @@ -92,7 +92,7 @@ sprite: Objects/Consumable/Drinks/tomatojuice.rsi - type: entity - parent: DrinkCartonBaseFull + parent: DrinkCartonSmallBaseFull id: DrinkCoconutWaterCarton name: coconut water description: It's the inside of the coconut that counts. @@ -107,7 +107,7 @@ sprite: Objects/Consumable/Drinks/coconutwater.rsi - type: entity - parent: DrinkCartonBaseFull + parent: DrinkCartonSmallBaseFull id: DrinkCreamCarton name: milk cream description: It's cream. Made from milk. What else did you think you'd find in there? @@ -122,7 +122,7 @@ sprite: Objects/Consumable/Drinks/cream.rsi - type: entity - parent: [DrinkBaseMaterialPlastic, DrinkCartonBaseFull] + parent: [DrinkBaseMaterialPlastic, DrinkCartonSmallBaseFull] id: DrinkJuiceLemonCarton name: lemon juice description: First it's sour, then it's still sour. @@ -137,7 +137,7 @@ sprite: Objects/Consumable/Drinks/lemonjuice.rsi - type: entity - parent: DrinkCartonBaseFull + parent: DrinkCartonSmallBaseFull id: DrinkJuicePineappleCarton name: pineapple juice description: Tastes like a tropical vacation far from space. @@ -154,7 +154,7 @@ # Large carton - type: entity - parent: DrinkCartonBaseLargeFull + parent: DrinkCartonBaseFull id: DrinkMilkCarton name: milk description: An opaque white liquid produced by the mammary glands of mammals. @@ -169,7 +169,7 @@ sprite: Objects/Consumable/Drinks/milk.rsi - type: entity - parent: DrinkCartonBaseLargeFull + parent: DrinkCartonBaseFull id: DrinkSoyMilkCarton name: soy milk description: White and nutritious soy goodness! @@ -184,7 +184,7 @@ sprite: Objects/Consumable/Drinks/soymilk.rsi - type: entity - parent: DrinkCartonBaseLargeFull + parent: DrinkCartonBaseFull id: DrinkOatMilkCarton name: oat milk description: It's oat milk. Tan and nutritious goodness! diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml index a856e91611..c0956fb33a 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml @@ -91,7 +91,7 @@ ## Bases for visuals -# Basic visualizer for an openable entity, usually paired with BaseDrinkOpenable +# Basic visualizer for an openable entity. Requires DrinkBaseOpenable - type: entity abstract: true id: DrinkVisualsOpenable @@ -129,7 +129,7 @@ inHandsMaxFillLevels: 3 inHandsFillBaseName: -fill- -# Layered visualizer for an entity with fill levels +# Layered visualizer for an entity with fill levels, and an overlay over the fill levels - type: entity abstract: true parent: DrinkVisualsFill @@ -157,7 +157,7 @@ - state: fill-5 # this will need to be different with a different maxFillLevels map: ["enum.SolutionContainerLayers.Fill"] -# Visualizer for an openable entity with fill levels +# Visualizer for an openable entity with fill levels. Requires DrinkBaseOpenable - type: entity abstract: true parent: [DrinkVisualsOpenable, DrinkVisualsFill] @@ -180,7 +180,7 @@ examinableWhileClosed: true # If you can see the fill levels it's not opaque heldOnly: false -# Visualizer for an openable entity with fill levels, already filled +# Visualizer for an openable entity with fill levels, already filled. Requires DrinkBaseOpenable - type: entity abstract: true parent: DrinkVisualsAll From 72d6fc35373baf3d509e90b4fcb82f9208b1fd18 Mon Sep 17 00:00:00 2001 From: iaada Date: Fri, 8 Aug 2025 19:14:18 -0500 Subject: [PATCH 38/41] variable alias --- .../Objects/Consumable/Drinks/drinks_base.yml | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml index c0956fb33a..f9903ccedc 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml @@ -17,24 +17,24 @@ - type: DnaSubstanceTrace - type: Edible edible: Drink # Namesake. This entity is a sort of cup you can drink directly from. - solution: drink destroyOnEmpty: false + solution: &sol drink # solution name alias - type: Spillable - solution: drink + solution: *sol - type: MixableSolution - solution: drink + solution: *sol - type: DrawableSolution - solution: drink + solution: *sol - type: RefillableSolution - solution: drink + solution: *sol - type: DrainableSolution - solution: drink + solution: *sol - type: InjectableSolution # Injectors (syringe) will fall back to RefillableSolution. This adds support for hyposprays and liquid anomalies. - solution: drink + solution: *sol - type: ExaminableSolution - solution: drink + solution: *sol - type: SolutionItemStatus - solution: drink + solution: *sol - type: SolutionContainerManager solutions: drink: @@ -56,7 +56,7 @@ components: - type: SpaceGarbage - type: TrashOnSolutionEmpty - solution: drink + solution: *sol - type: Tag tags: - Trash @@ -70,7 +70,7 @@ components: - type: Openable - type: PressurizedSolution - solution: drink + solution: *sol - type: Shakeable - type: Sealable From 63b5f37c1bdb97180f550c56f0bb5d38bf5c1047 Mon Sep 17 00:00:00 2001 From: iaada Date: Mon, 1 Sep 2025 17:12:19 -0500 Subject: [PATCH 39/41] no utensil --- .../Entities/Objects/Consumable/Drinks/drinks_base.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml index f9903ccedc..80e7fa10cb 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml @@ -18,6 +18,7 @@ - type: Edible edible: Drink # Namesake. This entity is a sort of cup you can drink directly from. destroyOnEmpty: false + utensil: None solution: &sol drink # solution name alias - type: Spillable solution: *sol From 3a7f8fc1a7dbaf2afc22807b177cc08a3bde17ea Mon Sep 17 00:00:00 2001 From: iaada Date: Fri, 5 Sep 2025 17:24:50 -0500 Subject: [PATCH 40/41] update for glue/lube tube inhand --- .../Objects/Consumable/Drinks/drinks_base.yml | 11 ++++++----- .../Objects/Consumable/Drinks/drinks_fun.yml | 13 ++++++++----- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml index 80e7fa10cb..c4e8b020e7 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml @@ -18,7 +18,7 @@ - type: Edible edible: Drink # Namesake. This entity is a sort of cup you can drink directly from. destroyOnEmpty: false - utensil: None + utensil: None # Spoons don't fit in cups, also conflicts with bar spoon stirring solution: &sol drink # solution name alias - type: Spillable solution: *sol @@ -81,16 +81,17 @@ parent: DrinkBaseOpenable id: DrinkBaseOpenableOpen components: - - type: Sprite - layers: - - state: icon_open - map: ["enum.OpenableVisuals.Layer"] - type: Openable opened: true - type: Sealable sealed: false +# - type: Sprite # Needs to be done manually, since most drinks have more than one layer. Or just let the visualizer handle it +# layers: +# - state: icon_open +# map: ["enum.OpenableVisuals.Layer"] ## Bases for visuals +# TODO standardize state names for fill levels and openable visuals # Basic visualizer for an openable entity. Requires DrinkBaseOpenable - type: entity diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_fun.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_fun.yml index 504c336a21..1197356553 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_fun.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_fun.yml @@ -1,6 +1,6 @@ - type: entity abstract: true - parent: [ DrinkBaseMaterialPlastic, DrinkBase, DrinkBaseOpenable, DrinkVisualsOpenable ] # todo Should use DrinkVisualAll, but sprite has no inhand + parent: [ DrinkBaseMaterialPlastic, DrinkBase, DrinkBaseOpenable, DrinkVisualsAllFilled ] id: BaseSqueezeBottle components: - type: Openable @@ -20,12 +20,15 @@ maxVol: 30 - type: SolutionContainerVisuals maxFillLevels: 6 - fillBaseName: fill + fillBaseName: fill # TODO rename to "fill-" + - type: GenericVisualizer + visuals: + enum.OpenableVisuals.Opened: + enum.OpenableVisuals.Layer: + True: {state: "icon_open"} + False: {state: "icon"} - type: TrashOnSolutionEmpty solution: drink - - type: ExaminableSolution # Remove when DrinkVisualAll is added - examinableWhileClosed: true - heldOnly: false - type: entity parent: BaseSqueezeBottle From b3e06de0e5261a729baf05fac1b6bf7c7ae612ff Mon Sep 17 00:00:00 2001 From: SlamBamActionman Date: Thu, 11 Sep 2025 14:02:05 +0200 Subject: [PATCH 41/41] They're milk jugs, not milk cartons! --- .../Entities/Objects/Consumable/Drinks/drinks-cartons.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks-cartons.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks-cartons.yml index ff5d7f10f4..f1f4ad06d0 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks-cartons.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks-cartons.yml @@ -154,7 +154,7 @@ # Large carton - type: entity - parent: DrinkCartonBaseFull + parent: [DrinkBaseMaterialPlastic, DrinkCartonBaseFull] # Looks like a plastic jug, fight me id: DrinkMilkCarton name: milk description: An opaque white liquid produced by the mammary glands of mammals. @@ -184,7 +184,7 @@ sprite: Objects/Consumable/Drinks/soymilk.rsi - type: entity - parent: DrinkCartonBaseFull + parent: [DrinkBaseMaterialPlastic, DrinkCartonBaseFull] id: DrinkOatMilkCarton name: oat milk description: It's oat milk. Tan and nutritious goodness!