]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
biofabricator (#23319)
authorIlya246 <57039557+Ilya246@users.noreply.github.com>
Tue, 2 Jan 2024 18:53:35 +0000 (22:53 +0400)
committerGitHub <noreply@github.com>
Tue, 2 Jan 2024 18:53:35 +0000 (13:53 -0500)
* initial implementation

* implement

* more mobs

* add tech

* buff abomination

* uncopypaste desc

* add sprite

* fix sprite

* remove biomass tag

* inden't

* less plasma for fish

14 files changed:
Resources/Locale/en-US/research/technologies.ftl
Resources/Prototypes/Entities/Mobs/NPCs/animals.yml
Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/production.yml
Resources/Prototypes/Entities/Objects/Specific/rehydrateable.yml
Resources/Prototypes/Entities/Structures/Machines/lathe.yml
Resources/Prototypes/Recipes/Lathes/electronics.yml
Resources/Prototypes/Recipes/Lathes/rehydrateable.yml [new file with mode: 0644]
Resources/Prototypes/Research/biochemical.yml
Resources/Textures/Structures/Machines/biofabricator.rsi/building.png [new file with mode: 0644]
Resources/Textures/Structures/Machines/biofabricator.rsi/icon.png [new file with mode: 0644]
Resources/Textures/Structures/Machines/biofabricator.rsi/inserting.png [new file with mode: 0644]
Resources/Textures/Structures/Machines/biofabricator.rsi/meta.json [new file with mode: 0644]
Resources/Textures/Structures/Machines/biofabricator.rsi/panel.png [new file with mode: 0644]
Resources/Textures/Structures/Machines/biofabricator.rsi/unlit.png [new file with mode: 0644]

index 9c95964750abad81d708a4ed11f5ce618e1bcb4a..9693c5be41eb43c64637a80396d3926b44e254c4 100644 (file)
@@ -27,6 +27,7 @@ research-technology-mechanized-treatment = Mechanized Treatment
 research-technology-virology = Virology
 research-technology-cryogenics = Cryogenics
 research-technology-chemical-dispensary = Chemical Dispensary
+research-technology-biofabrication = Biofabrication
 research-technology-crew-monitoring = Crew Monitoring
 research-technology-bluespace-chemistry = Bluespace Chemistry
 research-technology-cloning = Cloning
index 74cf35322d77e0e141b77113f24dbc01cf9f06ec..95f72919fac60427a880aa9aaba42ab54945b19a 100644 (file)
         shape:
           !type:PhysShapeCircle
           radius: 0.40
-        density: 1400
+        density: 400
         mask:
         - MobMask
         layer:
index d9a0ef573b1ef958e4b4a1936d983319daa4c3a0..8a9b3f16b3603d9d941912dd01e0449b49ac1382 100644 (file)
         DefaultPrototype: Igniter
         ExamineName: Igniter
 
+- type: entity
+  id: BiofabricatorMachineCircuitboard
+  parent: BaseMachineCircuitboard
+  name: biofabricator machine board
+  description: A machine printed circuit board for a biofabricator.
+  components:
+    - type: MachineBoard
+      prototype: Biofabricator
+      requirements:
+        MatterBin: 4
+      materialRequirements:
+        Glass: 1
+
 - type: entity
   id: SecurityTechFabCircuitboard
   parent: BaseMachineCircuitboard
index c92fed2e00a8c55cf7bb11328d5ab8070c932423..2adce1e66b3b26e19ad8419a05e23abb890d986d 100644 (file)
   parent: MonkeyCube
   id: KoboldCube
   name: kobold cube
-  description: Just add water!
   components:
   - type: Rehydratable
     possibleSpawns:
     - MobKobold
 
+- type: entity
+  parent: MonkeyCube
+  id: CowCube
+  name: cow cube
+  components:
+  - type: Rehydratable
+    possibleSpawns:
+    - MobCow
+
+- type: entity
+  parent: MonkeyCube
+  id: GoatCube
+  name: goat cube
+  components:
+  - type: Rehydratable
+    possibleSpawns:
+    - MobGoat
+
+- type: entity
+  parent: MonkeyCube
+  id: MothroachCube
+  name: mothroach cube
+  components:
+  - type: Rehydratable
+    possibleSpawns:
+    - MobMothroach
+
+- type: entity
+  parent: MonkeyCube
+  id: MouseCube
+  name: mouse cube
+  components:
+  - type: Rehydratable
+    possibleSpawns:
+    - MobMouse
+
+- type: entity
+  parent: MonkeyCube
+  id: CockroachCube
+  name: cockroach cube
+  description: Just add wa- OH GOD!
+  components:
+  - type: Rehydratable
+    possibleSpawns:
+    - MobCockroach
+
+- type: entity
+  parent: MonkeyCube
+  id: SpaceCarpCube
+  name: carp cube
+  description: Just add water! At your own risk.
+  components:
+  - type: Rehydratable
+    possibleSpawns:
+    - MobCarp
+
+- type: entity
+  parent: MonkeyCube
+  id: SpaceTickCube
+  name: tick cube
+  description: Just add water! At your own risk.
+  components:
+  - type: Rehydratable
+    possibleSpawns:
+    - MobTick
+
+- type: entity
+  parent: MonkeyCube
+  id: AbominationCube
+  name: abomination cube
+  description: Just add blood!
+  components:
+  - type: SolutionContainerManager
+    solutions:
+      cube:
+        maxVol: 10 # needs room for more blood
+        reagents:
+        - ReagentId: Blood
+          Quantity: 9
+  - type: Reactive
+    reactions:
+    - reagents: [Blood]
+      methods: [Touch, Ingestion, Injection]
+      effects:
+      - !type:AddToSolutionReaction
+        solution: cube
+  - type: Rehydratable
+    catalyst: Blood # blood is fuel
+    catalystMinimum: 10
+    possibleSpawns:
+    - MobAbomination
+
 - type: entity
   parent: PlushieCarp
   id: DehydratedSpaceCarp
index fa2fc727dc1c5e8a81296c6f21a0ff60eb1b4c8f..4600a23ca9c8704af97f9dcc59345d8196ec2d84 100644 (file)
       - ChemMasterMachineCircuitboard
       - ChemDispenserMachineCircuitboard
       - BiomassReclaimerMachineCircuitboard
+      - BiofabricatorMachineCircuitboard
       - SurveillanceCameraRouterCircuitboard
       - SurveillanceCameraMonitorCircuitboard
       - SurveillanceWirelessCameraMonitorCircuitboard
     guides:
     - Robotics
 
+- type: entity
+  id: Biofabricator
+  parent: BaseLathe
+  name: biofabricator
+  description: Produces animal cubes using biomass.
+  components:
+  - type: Sprite
+    sprite: Structures/Machines/biofabricator.rsi
+    snapCardinals: true
+    layers:
+    - state: icon
+      map: ["enum.LatheVisualLayers.IsRunning"]
+    - state: unlit
+      shader: unshaded
+      map: ["enum.PowerDeviceVisualLayers.Powered"]
+    - state: inserting
+      map: ["enum.MaterialStorageVisualLayers.Inserting"]
+    - state: panel
+      map: ["enum.WiresVisualLayers.MaintenancePanel"]
+  - type: Machine
+    board: BiofabricatorMachineCircuitboard
+  - type: MaterialStorage
+    whitelist:
+      tags:
+        - Sheet
+        - RawMaterial
+  - type: Lathe
+    idleState: icon
+    runningState: building
+    staticRecipes:
+    - MonkeyCube
+    - KoboldCube
+    - CowCube
+    - GoatCube
+    - MothroachCube
+    - MouseCube
+    - CockroachCube
+  - type: EmagLatheRecipes
+    emagStaticRecipes:
+    - AbominationCube
+    - SpaceCarpCube
+    - SpaceTickCube
+
 - type: entity
   id: SecurityTechFab
   parent: BaseLathe
index 340047856ce69e793a246112cd2ae0cf18996f73..38c4c247ac49bc29ec475acbdbebefe8644fc46a 100644 (file)
      Glass: 900
      Gold: 100
 
+- type: latheRecipe
+  id: BiofabricatorMachineCircuitboard
+  result: BiofabricatorMachineCircuitboard
+  completetime: 4
+  materials:
+     Steel: 100
+     Glass: 900
+     Gold: 100
+
 - type: latheRecipe
   id: HydroponicsTrayMachineCircuitboard
   result: HydroponicsTrayMachineCircuitboard
diff --git a/Resources/Prototypes/Recipes/Lathes/rehydrateable.yml b/Resources/Prototypes/Recipes/Lathes/rehydrateable.yml
new file mode 100644 (file)
index 0000000..c38259d
--- /dev/null
@@ -0,0 +1,74 @@
+# recipes should generally cost 1.5x to 2x of the biomass output of their mob
+
+- type: latheRecipe
+  id: MonkeyCube
+  result: MonkeyCube
+  completetime: 30
+  materials:
+    Biomass: 16
+
+- type: latheRecipe
+  id: KoboldCube
+  result: KoboldCube
+  completetime: 30
+  materials:
+    Biomass: 16
+
+- type: latheRecipe
+  id: CowCube
+  result: CowCube
+  completetime: 30
+  materials:
+    Biomass: 120
+
+- type: latheRecipe
+  id: GoatCube
+  result: GoatCube
+  completetime: 30
+  materials:
+    Biomass: 35
+
+- type: latheRecipe
+  id: MothroachCube
+  result: MothroachCube
+  completetime: 45 # prevent biblical floods
+  materials:
+    Biomass: 20 # a lot of materials wasted due to complex genetics
+
+- type: latheRecipe
+  id: MouseCube
+  result: MouseCube
+  completetime: 15
+  materials:
+    Biomass: 12
+
+- type: latheRecipe
+  id: CockroachCube
+  result: CockroachCube
+  completetime: 15
+  materials:
+    Biomass: 16
+
+- type: latheRecipe
+  id: SpaceCarpCube
+  result: SpaceCarpCube
+  completetime: 30
+  materials:
+    Biomass: 24
+    Plasma: 600
+
+- type: latheRecipe
+  id: SpaceTickCube
+  result: SpaceTickCube
+  completetime: 15
+  materials:
+    Biomass: 8
+    Plasma: 300 # less biomass but more plasma
+
+- type: latheRecipe
+  id: AbominationCube
+  result: AbominationCube
+  completetime: 30
+  materials: # abominations are slow and essentially worse than even carp
+    Biomass: 28
+    Plasma: 500 # more biomass but less plasma
index c48e457e15b3b0cc6e311f5f0b35acaf5591bbbc..14ae362d5e8fd2d3e80cf65ab63e617e52718c81 100644 (file)
   recipeUnlocks:
   - CryoPodMachineCircuitboard
 
+- type: technology
+  id: Biofabrication
+  name: research-technology-biofabrication
+  icon:
+    sprite: Structures/Machines/biofabricator.rsi
+    state: icon
+  discipline: Biochemical
+  tier: 2
+  cost: 10000
+  recipeUnlocks:
+  - BiofabricatorMachineCircuitboard
+  - BiomassReclaimerMachineCircuitboard
+
 - type: technology
   id: ChemicalDispensary
   name: research-technology-chemical-dispensary
diff --git a/Resources/Textures/Structures/Machines/biofabricator.rsi/building.png b/Resources/Textures/Structures/Machines/biofabricator.rsi/building.png
new file mode 100644 (file)
index 0000000..bb39a8f
Binary files /dev/null and b/Resources/Textures/Structures/Machines/biofabricator.rsi/building.png differ
diff --git a/Resources/Textures/Structures/Machines/biofabricator.rsi/icon.png b/Resources/Textures/Structures/Machines/biofabricator.rsi/icon.png
new file mode 100644 (file)
index 0000000..752bef2
Binary files /dev/null and b/Resources/Textures/Structures/Machines/biofabricator.rsi/icon.png differ
diff --git a/Resources/Textures/Structures/Machines/biofabricator.rsi/inserting.png b/Resources/Textures/Structures/Machines/biofabricator.rsi/inserting.png
new file mode 100644 (file)
index 0000000..a5145b0
Binary files /dev/null and b/Resources/Textures/Structures/Machines/biofabricator.rsi/inserting.png differ
diff --git a/Resources/Textures/Structures/Machines/biofabricator.rsi/meta.json b/Resources/Textures/Structures/Machines/biofabricator.rsi/meta.json
new file mode 100644 (file)
index 0000000..b6aa4d4
--- /dev/null
@@ -0,0 +1,56 @@
+{
+  "version": 1,
+  "license": "CC-BY-SA-3.0",
+  "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/338c826d1c3172eecd86d8430608669543dce0cc",
+  "size": {
+    "x": 32,
+    "y": 32
+  },
+  "states": [
+    {
+      "name": "icon"
+    },
+    {
+      "name": "panel"
+    },
+    {
+      "name": "unlit",
+      "delays": [
+        [
+          0.1,
+          0.1,
+          0.1,
+          0.1,
+          0.1,
+          0.1,
+          0.1
+        ]
+      ]
+    },
+    {
+      "name": "building",
+      "delays": [
+        [
+          0.1,
+          0.1,
+          0.1,
+          0.1
+        ]
+      ]
+    },
+    {
+      "name": "inserting",
+      "delays": [
+        [
+          0.1,
+          0.1,
+          0.1,
+          0.1,
+          0.1,
+          0.1,
+          0.1
+        ]
+      ]
+    }
+  ]
+}
diff --git a/Resources/Textures/Structures/Machines/biofabricator.rsi/panel.png b/Resources/Textures/Structures/Machines/biofabricator.rsi/panel.png
new file mode 100644 (file)
index 0000000..503e2f2
Binary files /dev/null and b/Resources/Textures/Structures/Machines/biofabricator.rsi/panel.png differ
diff --git a/Resources/Textures/Structures/Machines/biofabricator.rsi/unlit.png b/Resources/Textures/Structures/Machines/biofabricator.rsi/unlit.png
new file mode 100644 (file)
index 0000000..10cb435
Binary files /dev/null and b/Resources/Textures/Structures/Machines/biofabricator.rsi/unlit.png differ