From 8b6da7190b11d374086caf06b5e6c90e8747942c Mon Sep 17 00:00:00 2001 From: iaada Date: Mon, 28 Jul 2025 23:34:53 -0500 Subject: [PATCH] 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 -- 2.51.2