From: iaada Date: Fri, 25 Jul 2025 05:05:30 +0000 (-0500) Subject: cups and metamorphic X-Git-Url: https://git.smokeofanarchy.ru/gitweb.cgi?a=commitdiff_plain;h=94f089a1c6a2bca9cd27e231f1eb6c9eaf87226f;p=space-station-14.git cups and metamorphic --- 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: @@ -43,6 +43,31 @@ tags: - DrinkCup +- type: entity + abstract: true + parent: DrinkBaseCup + id: DrinkBaseMug + name: mug + description: A mug. + components: + - type: Sprite + sprite: Objects/Consumable/Drinks/mug.rsi + layers: + - state: icon-0 + - map: ["enum.SolutionContainerLayers.Fill"] + state: icon-3 + visible: false + - type: Appearance + - type: SolutionContainerVisuals + maxFillLevels: 3 + fillBaseName: icon- + - type: PhysicalComposition + materialComposition: + Glass: 25 + +## + +# Misc Cups - type: entity parent: DrinkBaseCup id: DrinkGoldenCup @@ -59,26 +84,33 @@ - type: entity parent: DrinkBaseCup - id: DrinkBaseMug - abstract: true - name: mug - description: A mug. + id: DrinkWaterCup + name: water cup + description: A paper water cup. components: - type: Sprite - sprite: Objects/Consumable/Drinks/mug.rsi + sprite: Objects/Consumable/Drinks/water_cup.rsi layers: - - state: icon-0 - - map: ["enum.SolutionContainerLayers.Fill"] - state: icon-3 - visible: false + - state: icon-0 + - map: ["enum.SolutionContainerLayers.Fill"] + state: icon-1 - type: Appearance - type: SolutionContainerVisuals - maxFillLevels: 3 + maxFillLevels: 1 fillBaseName: icon- - - type: PhysicalComposition - materialComposition: - Glass: 25 + - type: Tag + tags: + - Trash + - WhitelistChameleon + - type: TrashOnSolutionEmpty + solution: drink + - type: Clothing + slots: + - HEAD + quickEquip: false + sprite: Clothing/Head/Hats/party_water_cup.rsi +# Mugs - type: entity parent: DrinkBaseMug id: DrinkMug @@ -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