I’m posting this code for three reasons. The first, is that I think it’s phenomally useful in a shift-to-shift context, and I really would like to see it crop up more often. The second, is that the Circuits subcategory of the Guides section could use at least one useful post, that isn’t a proof of concept. Finally - I’d like to give people an example of a finished device, so one can look at how it works, and how it should look. Note how I go into detail with the Redescriber component, so that people can look at it - and know how to use.
Consider how this device might be altered. For example - removing the health-detection components, and replacing the recommended reagents with Leporazine, Bicaradine, Kelotane, and Dexalin Plus - for reagent based EVA.
For giggles, I name all my finished devices after my Scientist character. It helps with branding - and branding lets people know which devices are well made, and useful.
Every shift I have made and used this device, it has pulled me out of Crit and saved my life at least once. Every single time.
I might edit the code, and include an input which specifies at what level of health the device activates at. The default is 10 health.
As always, if you’d like to make your own circuits instead of being a script kiddy, read the guide.
Petrova AutoInjector
This device detects when the health of the user is low, and automatically injects reagents from a beaker slot into them. Additionally, one can select how many reagents are injected, and how long the delay between injections is.
For this particular device, more desirable reagents are listed first, more easily created reagents are listed second.
Recommended Mix: 30u Atropine or Epinephrine, 30u Oxandralone or Kelotane, 30u Salicyclic Acid or Bicaradine
The default injection cooldown is 2 minutes - to allow for full reagent metabolization - and the default injection amount is the maximum 30u.
Usage:
- Insert Beaker with desired reagents
- Use device on self
{“assembly”:{“type”:“type-c electronic assembly”,“name”:“Petrova AutoInjector”,“detail_color”:“#E2E2E2”},“components”:[{“type”:“tesla power relay”},{“type”:“starter”},{“type”:“equal gate”,“name”:“EQUAL BOOL TRUE”},{“type”:“fast ticker”},{“type”:“sensor”},{“type”:“integrated medical analyser”},{“type”:“greater than or equal gate”,“name”:“GTOE MISSING HEALTH”,“inputs”:[[2,0,90]]},{“type”:“equal gate”,“name”:“EQUAL DELAY”},{“type”:“beaker slot”},{“type”:“reagent pump”,“inputs”:[[3,0,30]]},{“type”:“integrated hypo-injector”,“inputs”:[[2,0,30]]},{“type”:“custom delay circuit”,“name”:“DELAY NEXT INJECT”,“inputs”:[[1,0,1200]]},{“type”:“constant chip”,“name”:“CONSTANT NULL”},{“type”:“constant chip”,“name”:“CONSTANT 1”,“special”:1},{“type”:“number pad”,“name”:“INJECT AMOUNT INPUT”},{“type”:“number pad”,“name”:“INJECT DELAY INPUT”},{“type”:“redescriber”,“inputs”:[[1,0,“A Petrova brand machine. Injects the user with chemicals from a beaker when health is low. To use, insert beaker, tap self with machine. Use in hand to set delay between injections in tenths of a second (default 2 minutes), or total injection amount (maximum 30, default 30). Recommended Mix: 30u Atropine or Epinephrine, 30u Oxandralone or Kelotane, 30u Salicyclic Acid or Bicaradine.”]]}],“wires”:[[[2,“A”,1],[3,“A”,1]],[[2,“A”,1],[17,“A”,1]],[[3,“O”,1],[4,“I”,1]],[[4,“A”,1],[6,“A”,1]],[[4,“A”,1],[10,“A”,1]],[[5,“O”,1],[6,“I”,1]],[[5,“O”,1],[11,“I”,1]],[[6,“O”,2],[7,“I”,1]],[[6,“A”,2],[7,“A”,1]],[[7,“A”,2],[8,“A”,1]],[[8,“I”,2],[13,“O”,1]],[[8,“I”,2],[14,“O”,1]],[[8,“A”,2],[11,“A”,1]],[[9,“O”,2],[10,“I”,1]],[[10,“I”,2],[11,“O”,2]],[[11,“I”,2],[15,“O”,1]],[[11,“A”,2],[12,“A”,1]],[[11,“A”,2],[14,“A”,1]],[[12,“I”,1],[16,“O”,1]],[[12,“A”,2],[13,“A”,1]]]}