]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
quality passes will continue until i'm satisfied
authoriaada <iaada@users.noreply.github.com>
Tue, 29 Jul 2025 04:34:53 +0000 (23:34 -0500)
committeriaada <iaada@users.noreply.github.com>
Tue, 29 Jul 2025 04:34:53 +0000 (23:34 -0500)
Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml
Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base_materials.yml
Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml
Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_fun.yml
Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_metamorphic.yml
Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml

index 65befafd08d95afbca3e163ff55cd2826f2aa1ff..76a50ab5255c6ff1994bb5fac1ac648f68e7e61d 100644 (file)
@@ -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
     - 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
           False: {state: "icon_empty"}
   - type: Sprite
     layers:
-    - state: icon
+    - state: icon_empty
       map: ["enum.OpenableVisuals.Layer"]
     - state: fill-1
       map: ["enum.SolutionContainerLayers.Fill"]
   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"]
index d09df66b4cb1a877816d066e4d1b3cb56e987c9d..b59d3a961f99230b832d146dbc60f8d9134a027e 100644 (file)
@@ -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
   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
     damageModifierSet: FlimsyWood
   - type: Destructible
     thresholds:
-    - trigger:
-        !type:DamageTrigger # Overkill threshold
+    - trigger: # Overkill threshold
+        !type:DamageTrigger
         damage: 200
       behaviors:
       - !type:DoActsBehavior
     damageModifierSet: FlimsyMetallic
   - type: Destructible
     thresholds:
-    - trigger:
-        !type:DamageTrigger # Overkill threshold
+    - trigger: # Overkill threshold
+        !type:DamageTrigger
         damage: 200
       behaviors:
       - !type:DoActsBehavior
     damageModifierSet: Metallic
   - type: Destructible
     thresholds:
-    - trigger:
-        !type:DamageTrigger # Overkill threshold
+    - trigger: # Overkill threshold
+        !type:DamageTrigger
         damage: 200
       behaviors:
       - !type:DoActsBehavior
     materialComposition:
       Steel: 300
 
-# Weak gold
+# Flimsy gold
 - type: entity
   abstract: true
   id: DrinkBaseMaterialGold
     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:
index 822809f4f159018ff64703e3d285e4da8eac39d2..4e1069d33bc2fdb42a95b69b5ee0416b28c5c6ef 100644 (file)
@@ -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.
   - 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
index 3b3ee707fa808d6961c0eb5f056712b9a905eba8..4875f22e8b36278499e213dbd114d1d27a825782 100644 (file)
@@ -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.
index adadea50f40e94ada81febff1da9861579ef68f6..427943a029a7d872b90d2af92eb8172160efa498 100644 (file)
@@ -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
index 3ac01c12583a5e0b45e9ebd29574b13daa96b462..806d75765d9d637342a407b71b3323069c665738 100644 (file)
@@ -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.
   - 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
   - type: SolutionContainerManager
     solutions:
       drink:
-        maxVol: 20
+        maxVol: 20 # 20 might be too much
   - type: Item
     size: Tiny
   - type: SolutionTransfer
       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.
   - 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