From fc4ad82934b0b094c9125922258248b561b1b338 Mon Sep 17 00:00:00 2001 From: Ilya246 <57039557+Ilya246@users.noreply.github.com> Date: Tue, 2 Jan 2024 22:53:35 +0400 Subject: [PATCH] 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 --- .../Locale/en-US/research/technologies.ftl | 1 + .../Prototypes/Entities/Mobs/NPCs/animals.yml | 2 +- .../Circuitboards/Machine/production.yml | 13 +++ .../Objects/Specific/rehydrateable.yml | 93 +++++++++++++++++- .../Entities/Structures/Machines/lathe.yml | 44 +++++++++ .../Prototypes/Recipes/Lathes/electronics.yml | 9 ++ .../Recipes/Lathes/rehydrateable.yml | 74 ++++++++++++++ Resources/Prototypes/Research/biochemical.yml | 13 +++ .../Machines/biofabricator.rsi/building.png | Bin 0 -> 1395 bytes .../Machines/biofabricator.rsi/icon.png | Bin 0 -> 960 bytes .../Machines/biofabricator.rsi/inserting.png | Bin 0 -> 716 bytes .../Machines/biofabricator.rsi/meta.json | 56 +++++++++++ .../Machines/biofabricator.rsi/panel.png | Bin 0 -> 195 bytes .../Machines/biofabricator.rsi/unlit.png | Bin 0 -> 405 bytes 14 files changed, 303 insertions(+), 2 deletions(-) create mode 100644 Resources/Prototypes/Recipes/Lathes/rehydrateable.yml create mode 100644 Resources/Textures/Structures/Machines/biofabricator.rsi/building.png create mode 100644 Resources/Textures/Structures/Machines/biofabricator.rsi/icon.png create mode 100644 Resources/Textures/Structures/Machines/biofabricator.rsi/inserting.png create mode 100644 Resources/Textures/Structures/Machines/biofabricator.rsi/meta.json create mode 100644 Resources/Textures/Structures/Machines/biofabricator.rsi/panel.png create mode 100644 Resources/Textures/Structures/Machines/biofabricator.rsi/unlit.png 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 0000000000000000000000000000000000000000..bb39a8ffbf57c6e393b767feb59f41aad47a2dc3 GIT binary patch literal 1395 zcmV-(1&sQMP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!TXd$^w&InSh5~C?l}|sNoL6k zJdaPj73$GO#(kOwvNU5Y6E^iHBp#n7u$(^u2t#>#M5+od7jr1G+*k(1d^#016m<jZP1x2yS@$30ST(?4EzB;?Azfa##|q2(ljIz0Ac>FK2j|Pj zkYgVto%A}T{ocADbo zU^&XN#1Vf6+4W7Q58BqBL^CYF6bpdhD~bCGBc%0A&^_uprP0z^p0&pWT~dFD(pUo} zHbtWWEbFrY0vue3tf88agU=8e0f|@20}a)#k+LXpJj1+k!lO4q+xnAm8m|1XEkFqo zG-b}|A$ZdmrciMDa(>A%TVD3(=ZhtXs)lJCL75j&mDRccw)NQnbfLyq%DWbTYO+YT zpT}BeVO0S2hw)zP`tNaSWN5;nf(aV*W@j@Tm7|qBH7Y~&k79sBg!sPa?z!orcZ#mR zWdILnT0_H7(yJRDjbDECwLG)Il>ebH6kUJx7C<8{Sy%-gd3${R&3BOe{JT6Fm!bL_ z1H5Zz$I%V&-DxN!#@B&zQPtD4M5n?-*f@Q#}V~v z@mwAa$CDHAMs~=H#U)e)uGM>d^3yL6oSwq_k3I$cO>INJ(*kIz=;K_x!KUc#`A8|k zw%C5PJ;Le;nxo@{gV1XriXvR5SG*`0sxKnEhErVO3-ATriwhyY*m3VI^w)0z)l>*7 zz}|rWpM&X|7C0|0UxgBvhs zQwi`68aT#+`ZQ+DX;BLv;B;}qw*CbB+6rrd#fg2RFf}XcoBde9&5rcsDO!T6d@HO0 zyxtKfZ0oZD_>+{5mPrS7o?-&iq{$i>x2M%jEqo0_neR4$O?}w{+5)J@I173Rtu_>{ z%?{YBWnQ}sU{jwBAk#)n5A9=Le!C1HlSYoM?{M66xKAX`Kfw71aOC_0j#LBAKY+km zaQ*>?{dwmf;QRxee}MB3u&K|V#GHQsUU2>aBQj)vUY;72A^Jx#z#(YYmb>Ssi{2@^ z{+0nu`|pRsP@I2&^AB+T0nR_b`3E@vfd7zxfZCJiH0{jNz)FFwj!DsuwEeyM|Al{m zz9+Bt<$*q`P(@KJ_vuZ0^~9n5dBrY$J>0o}fN@V=)xJWu0;0cH@B9OJmev-|`3LOS zowcp+`~#=}&Ocxerib>iFTY&|kVzxQ*1zWf{0oR{Z1hPCR^0#q002ovPDHLkV1lV0 Bn=}9b literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..752bef229940dc63d8d44ddd4a702c2378d6fcad GIT binary patch literal 960 zcmV;x13&zUP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D164^xK~z{r<(4t1 z(?A%~G?*8}P_uY5&-_zqCKkyf17}9Yi^rxk& z+mt0mVI*_4>G9;=z^Cc>l*qPK_a4bI8coKOMDa!uefc%3C6vQ~)PiZQY74?FlU&Q9 zz_g@0EOJWnoG33)GNJ-Cqicn6IweDmzlokd2o~ND7C4z4%mU-tgyLBUZI!qrPL`JF zFZT}|$^rtc5S$DtoSs+z6+M3l3;5naePBF&Ofh_b=Lye4_J^efmIC0Yf?@3t4K2!C z4T`~&Bq7)HD4MqfxW2b=TxS(ZhX6X#G)1@v6rIl-KG1Um2yh?(AS7k4gyOQG2KTD%lds`MOXRguKek2GNmHR$?;rDl`Ash9XLE^$ zZ%>}C3)mI*bY7t@;`uG^KYK;~`_Ix|30OtU)llEtp0ifk+_`m3H@|*NQ0{PLAv^lz*LFnn>aRE&0ojnFurL4lNAs=l^>H@}JA{=BGd0Wjgwv&otI*BwJ8 zfKoZc$z()Xg1bVCyYD`bb#z46AKhzOfK#Q3Tu@>wj9o6Nih^?l4jiU#0oQeLO~@oE zEu%o2ieUl!C^FWDtg0vHc4Yw^jr@KbMPf$nIJ=VJs^;Mm!WodWp*CtG8CkZykQOVz z8|*myf_;iTf+=u!WCyQL&h)U?3s^xWXSPKFo0WZ|U2DYbJfG^~6s*V1U;#XDOwNb^ zxsuhX4bnjOSBsLiGMw~P-TI{pd4`h4TLjqZN~S-PA^0Px?uuBm0lZ3$b*TW=-pHnp iwy|xzu4DZJi2eY<^3bq$+}3yi0000ULMB9l!Qw z_THyOH(L@nMr<*!ja3j~Sj-^7dO(B0jnROsA&{YmDFGxjqj&3q%ZKy6J}u9l&mZ-> zr1W>x)&6hMr~kJ-**aPN{`X(Y{xC;!-xB!nv3C2fuj{rxp3NO6{(IxM>)kI|E_{5R zQevp5{Oj%0w=5?Wi37aN96trtve8!wxo6QzXz`zg6-H-{_ITd=UNds;kGsV zgapm@W7#Sp_cawCpO^i8&{{!$-h$L!d@5HOTctFEosP}7-qx?;SflcjDFEgv41aF^ z++7$cpj>Dwa!iv0H2~1mx|N?$vD`W-q@8oc)ET?t_Fa?J(r*l8to_=z>w@RabtZ2Y z&RMx#Epg xXZrb*twU;*zM0gha6T4c!5YiW*8>L*@bK^m2ng^A@e3qN zF-+v=;^xxU))o^JlarI<=H*HFe)$McF=I)PUoeBivm0qZPJpM2V~EDYY}bI8oW9tPu31NA*%M^2}{tUMT?$vWVJ0&xWcooNJ689tK@)# oa!7(2k53Cn!NI$VZC7V9_|=IYH*dN49%wd$r>mdKI;Vst03|{;)&Kwi literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..10cb4358779749fd22d6c0c3a00ddacece9f07a6 GIT binary patch literal 405 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGojKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1quc4O*Tqjv*CsZ|^J&I&2`p{-I&joyQ6jCr_R1 zp)$$+MzVss`oziAA}OgcncMi-S9{Ew`nRt9{?|)g^}C+vJ$uarG?u}jzy0GZ-_4cp zoi|IlH{WR8aXan&&$E|4$sf=kUXRq(fdb0fczB3P_>Mp)#UbZED`h;7LzqdbLnHBN2|KZc(sIrZ$ zGj7SpJN;tJJ2-_GWb`jdn8^$bcQ)5wm#+FAWdFxMzwVb`!n1#WmTG?c{&j2B=jqFC iFd6h3gVi=Xa{9rRV!gF6q{MI?NW|0C&t;ucLK6UJU99;4 literal 0 HcmV?d00001 -- 2.51.2