From: Ilya246 <57039557+Ilya246@users.noreply.github.com> Date: Tue, 2 Jan 2024 18:53:35 +0000 (+0400) Subject: biofabricator (#23319) X-Git-Url: https://git.smokeofanarchy.ru/gitweb.cgi?a=commitdiff_plain;h=fc4ad82934b0b094c9125922258248b561b1b338;p=space-station-14.git biofabricator (#23319) * initial implementation * implement * more mobs * add tech * buff abomination * uncopypaste desc * add sprite * fix sprite * remove biomass tag * inden't * less plasma for fish --- diff --git a/Resources/Locale/en-US/research/technologies.ftl b/Resources/Locale/en-US/research/technologies.ftl index 9c95964750..9693c5be41 100644 --- a/Resources/Locale/en-US/research/technologies.ftl +++ b/Resources/Locale/en-US/research/technologies.ftl @@ -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 diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml index 74cf35322d..95f72919fa 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml @@ -643,7 +643,7 @@ shape: !type:PhysShapeCircle radius: 0.40 - density: 1400 + density: 400 mask: - MobMask layer: diff --git a/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/production.yml b/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/production.yml index d9a0ef573b..8a9b3f16b3 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/production.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/production.yml @@ -67,6 +67,19 @@ 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 diff --git a/Resources/Prototypes/Entities/Objects/Specific/rehydrateable.yml b/Resources/Prototypes/Entities/Objects/Specific/rehydrateable.yml index c92fed2e00..2adce1e66b 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/rehydrateable.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/rehydrateable.yml @@ -53,12 +53,103 @@ 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 diff --git a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml index fa2fc727dc..4600a23ca9 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml @@ -370,6 +370,7 @@ - ChemMasterMachineCircuitboard - ChemDispenserMachineCircuitboard - BiomassReclaimerMachineCircuitboard + - BiofabricatorMachineCircuitboard - SurveillanceCameraRouterCircuitboard - SurveillanceCameraMonitorCircuitboard - SurveillanceWirelessCameraMonitorCircuitboard @@ -552,6 +553,49 @@ 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 diff --git a/Resources/Prototypes/Recipes/Lathes/electronics.yml b/Resources/Prototypes/Recipes/Lathes/electronics.yml index 340047856c..38c4c247ac 100644 --- a/Resources/Prototypes/Recipes/Lathes/electronics.yml +++ b/Resources/Prototypes/Recipes/Lathes/electronics.yml @@ -164,6 +164,15 @@ 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 index 0000000000..c38259dd81 --- /dev/null +++ b/Resources/Prototypes/Recipes/Lathes/rehydrateable.yml @@ -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 diff --git a/Resources/Prototypes/Research/biochemical.yml b/Resources/Prototypes/Research/biochemical.yml index c48e457e15..14ae362d5e 100644 --- a/Resources/Prototypes/Research/biochemical.yml +++ b/Resources/Prototypes/Research/biochemical.yml @@ -90,6 +90,19 @@ 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 index 0000000000..bb39a8ffbf 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 index 0000000000..752bef2299 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 index 0000000000..a5145b0bc8 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 index 0000000000..b6aa4d4990 --- /dev/null +++ b/Resources/Textures/Structures/Machines/biofabricator.rsi/meta.json @@ -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 index 0000000000..503e2f2170 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 index 0000000000..10cb435877 Binary files /dev/null and b/Resources/Textures/Structures/Machines/biofabricator.rsi/unlit.png differ