-
Notifications
You must be signed in to change notification settings - Fork 340
feat: creature cloning & DNA #7265
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
|
1 step closer to Rimworld's organ harvesting facilities. |
4a72acf to
3e48056
Compare
3ab3650 to
76da0e3
Compare
|
This is about ready to be nitpicked, I have it in a state I'm mostly happy with. Not too sure if it's completely ready for merging, but I figure probably ready for review. |
|
Just for transparency my opinion was asked on Discord and my main complaint is that this doesn't follow what Thought Emporium actually has done IRL, where we can print DNA and sequence stuff on a computer with just having the DNA on a flash drive or storage device. Also, besides printing DNA we need a specialized and delicate machine to synthesize the material needed for DNA from plants and meat. BN is in the 2050s with secret government labs and cyborgs, so stuff that Thought Emporium has done in real life is completely possible for a bored survivor with nothing else to do. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Cloning blob stuff MAYBE makes sense, but I feel it REALLY should be limited to mutants and such. Key thing that makes this kinda nonsensical is allowing zombies means you can have undead fetuses which can grow into still-very-much-undead zombies, even profession zombies where this gets especially wacky.
Co-authored-by: Chaosvolt <[email protected]>
|
Autofix has formatted code style violation in this PR. I edit commits locally (e.g: git, github desktop) and want to keep autofix
I do not want the automated commit
If you don't do this, your following commits will be based on the old commit, and cause MERGE CONFLICT. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Flaws found so far:
- Genome workstations can create USB drives out of thin air when copying an existing drive.
- The actual process is horribly convoluted and unintuitive. Making it fairly advanced and requiring multiple tools to implement is fine, but maybe the item descriptions should say more about when and how you're supposed to use them in the process.
- Several of these use actions are too limited in their item range, requiring you to have everything in your inventory.
- Rhis is ESPECIALLY bad when producing DNA from genome samples. You not only NEED to have the growth medium in your inventory and can't just have it in crafting radius, but you set the liquid handling prompt it generates to inventory-only, so players who expect to be able to pour the DNA they produced in a nearby empty container like 90% of liquid handling prompts in the game will be locked into dumping it on the floor instead.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I thiiiink these should help keep the process decently clear.
Co-authored-by: Chaosvolt <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Okay, I think most of it can be smoothed out if two critical issue are fixed.
- Genome sample has zero ability to check that the drive it's eating is actually empty. We REALLY need to make it not eat important stuff like quest lab data or hackpro.
- Genome workstation can no longer copy genome drives because
get_chargescan't actually find the USB drives. Important: make sure any fix for this doesn't cause the same issue as problem one!
Purpose of change (The Why)
We are in the future, and can't commit CRISPR crimes?
Describe the solution (The How)
Adds DNA gathering using genomic samplers, a new tool found either in lab/science locations or crafted from a lab journal. You can approach any viable monster (currently excludes hallucinations and robots, or the CANT_CLONE flag) and sample 8 units of their DNA for later use. This can then be used in combination with the item below, the artificial womb, to grow an embryo in a properly setup vat.
Adds an artificial womb item, a tool used for the transportation of vat-grown embryos. These can then be released on the field, away from the vat itself. Upon use, they are given the dirty bionic fault and must be sterilized at an autoclave before being used again. They can also be modified with the radio activation mod to unleash hell. (think dropping a trex container from a heli, then activating it. probably many other useful scenarios too)
Adds cloning using DNA and an artificial womb at a cloning vat furniture (now replaces all legacy t_vat occurences in labs), which requires 1 day for each size increment of the creature (tiny, medium, large, etc) and a large amount of battery. Note that these do NOT have sustained battery inside the labs themselves and must be transported elsewhere.
Changes text in the autoclave menu to be more generic (device vs CBM).
Also adds some various features that could be useful outside of DNA and cloning:
Adds the ability for spawn_monster iuse to be remotely activated using radio mod.
A hack to allow sorting of liquids using specific set_vars.
Fixes removing the radio activation mod using the "remove all tools" iuse. Previously it was broken.
Bionic Scanner recipe was updated to match the newer standard.
Allows
Describe alternatives you've considered
Using the original multicooker iuse, and creating a new crafting category "CLONING" under animals. This requires an individual item for each creature's DNA and embryo (atleast without going out of my scope).
Keeping the original iuse implementation that is in the commits of this PR.
UPDATE: took two days but I did it! it is now an iexamine furniture
Moving the cloning_vat iuse code to an iexamine? Currently (with the iuse implementation) active ticking pseudo_tools like the multicooker or cloning vat don't work properly as furniture, as they never are considered properly active. I'd prefer to not convert the vats into an item either.
Testing
Teleported to a desolate barn, spawned a cloning vat, a genomic sampler, a few containers and setup a plutonium generator as well as some storage batteries. Spawned a few animals: tyrannosaurus rex, cow, rat, chicken, zombie, etc. and confirmed that I can successfully draw their DNA (using first aid skill for success chance) and store it in a container. I then used the cloning vat, and confirmed it showed a list of all DNA in my inventory as well as how long it will take.
Upon beginning, the vat will print a message stating it has started the incubation process, which can be interrupted before it's done but causes the loss of the DNA, the loss of the embryo inside, and the womb will need sterilized before it can be used again. Upon success, there is a 10% chance the monster will mutate into one of the defined monster's upgrades defined in JSON. This can be used to achieve specimens that may otherwise be too dangerous to approach, or unobtainable without genetic engineering. The artificial womb can then be extracted from the cloning vat for transportation and use elsewhere.
Additional context
We need a way to "craft" or combine DNA. Combining it with mutagen should cause the resulting monster to either turn into a specific monster from a recipe, or could make it choose a random upgrade from the evolution list. If we allow recipes to set_var on creation, we could make craftable nanofab templates and custom DNA, as well as a plethora of other uses.
There should be a way to upgrade DNA directly, preferrably in some sort of followup furniture. This could probably also handle the crafting/combining of DNA.
There should maybe be a chance of catastrophic failure from the vat which results in a mutant horror breaking out?
Making the specimens able to be released from the vats directly and therefore not require an artificial womb could be cool. For things like rats and such you shouldn't necessarily need a 60L vat to transport it, as it's not super dangerous to you.
I would like the artifical wombs to be remotely openable with a remote activation mod. Will happen either in this PR or the followup.
Creating some sort of flag or value for monstergroups that signals to them to never actually upgrade (instead of setting it to 99999999999 days) may be better for genetically unobtainable specimens.
Sampling an NPC causes a segfault. Needs fixed.
📸 Screenshots
Checklist
Mandatory
closes #1234in Summary of the PR so it can be closed automatically.mainso it won't cause conflict when updatingmainbranch later.