BCIs are a new shell that can be implanted in your brain through surgery or through a BCI Manipulation Chamber, which provide the ability to easily implant and remove BCIs. They are the same size as compact remotes and generally share the same limitations.
Also adds CIRCUIT_FLAG_HIDDEN, to hide components from the UI. I didn't end up needing this, but Watermelon said he had ideas for it, so eh.
Why It's Good For The Game
BCIs provide an interesting, stealthy input method for circuits. They are seen as a healthier alternative to nanites, and improve on them in several ways:
Circuits have limited manipulation of the world, and intentionally do not perform the ability to provide passive healing, revives, etc.
Circuits have a significantly better UI and UX than nanites.
Circuits regularly get content expansions, which means that as a side-effect, there'll often be new things to play with for BCIs.
Other point to make:
BCI implanters have no cloud, and instead require the BCI to be put inside the machine. This means it requires the attention of the scientist (or even just a box with them inside). With
Adds the ability to save/load circuits for admins. Adds the ability to duplicate modules in a round. #60222, which lets you reprint a circuit you made that round, this means you can print out lots of BCIs, rather than going through the tedium of constantly remaking it.
BCI implanters are not roundstart, but rather in the advanced shells node. This is essentially the same as nanites, except for the difference of nanites starting with all the machinery, but none of the powers.
Changelog
cl
add: Added brain-computer interface circuit shells.
/cl
If panic bunker is enabled, interviews disabled, and living bunker disabled, and a player whitelisted previously by only observing connects, you will get the message
"ADMIN LOG: Failed Login: [Ckey attempting to join] - Account attempting to connect during panic bunker, but they do not have the required living time 0/0."
Instead what should happen is the living time is ignored as it should be
(This also fixes when it's set to say 5 minutes and someone with 5 minutes connect but is rejected anyway)
Fixes the icon state of orange shoes being set to "" on detaching handcuffs, incidentally cleans up the use of src. in the vicinity of the fix
Co-authored-by: Thunder12345 <stewart@critar.demon.co.uk>
This PR allows gas masks to properly filter toxic gases by using one-time-use filters that can be made in any lathe from roundstart. All gas masks start with filters in at roundstart.
These filters will have different filtering abilities that differenciate what gas they'll be able to filter the most. The highest ones will be plasma gas, co2 and n2o.
Currently there is only one filter available, it will filter plasma, co2 and n2o at higher amount, while nitryl, stimulum, freon, hypernob and bz will be at a mid range and the more complex/dangerous gases healium, zauker, proto nitrate, tritium, halon will have easier time passing even at trace amounts
More filters with different filtering levels soon(tm)
Warning, the masks will filter traces amount of gases, but will also help slowdown the damage you'll get by breathing the gas by reducing the amounts of moles taken (example plasma intoxication will be slower)
Gas masks now properly filter gases when a filter is used (they will work normally otherwise)
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Cleans up some of the spans on the plant analyzer from the mass span conversion PR. Find and replace did not do wonders for the plant analyzer formatting (which is probably partially my fault).
Also adjusts some visible_message formatting and some text formatting of the plant analyzer.
Minature little mecha for critters (tiny simple animals) to ride around in. Comes with headlights, and the ability to chime or buzz (in case you cannot speak gal com)
Old PR #59736
I got the sprites for it now!
This PR adds temperature based coloring for atmos gas meters and freezers.
These values are based on the BODYTEMP icon warnings that you get when a room is too hot or too cold. There is also some minor code improvements where some of the icon heat and cold warnings were hardcoded values. I made this a constant in the __DEFINES.atmospherics.dm file that you can see below. These values have been applied to air alarms, thermomachines, gas meters, and species code.
This is a QoL update for atmos tech nerds. Instead of having to manually examine a gas meter or use an analyzer to determine what temperature is in the pipes you can rely on the colored icons to communicate that information rapidly. This should also help prevent harmful gas leaks where a person unwrenches a pipe without realizing there is hot gas inside it. And you should be able to troubleshoot a delaming SM faster and easier with these colors.
* Adds a simple if check to prevent runtimes
* Deletes a mistaken comment that I added in the prev commit
* Implemented the check for TEG and HFR.
Also moved cryo nullifyPipenet check and firing to only happen if a node is present.
Adds a new trait that "simulates" a medium-like disease according to health HUDs.
Organs now control their own "status text" for health scanners, for all except the appendix, this is the same as before.
Appendicitis has a low chance of occuring on each life tick of an appendix, it is no longer a disease.
Straight from CentComm's R&D lab, the
ANTI-TIDER-2500
is the ULTIMATE crowd-control device.
Tired of being harassed by the crew for petty reasons? Sick of permabrigged prisoners constantly rioting over soggy tofu rations? The ANTI-TIDER-2500 is for YOU! For the modest sum of 710 credits you'll finally be able to hose clowns and whiners alike in pepper spray!
Co-authored-by: coiax <yellowbounder@gmail.com>
fixes#60253
the above issue showcased a really weird issue with "manual_emote()" which took an emote and then changed the pronoun mid-use, which on its own is ok, but some mobs include names with their emote, hence changing "pronouns" in the middle of peoples names
this method of using manual_emote() is dumb because theres already a proc for changing pronouns in a string, as well as dedicated procs for inserting the correct pronoun for the given mob DIRECTLY in the emote string itself
so what I did was remove the part of the code in manual_emote() that swapped pronouns, it wasnt needed, and instead went to every single emote string that used it and used the [p_they()] procs to get the correct pronouns.
while i was at it, i also touched up descriptions and other miscallaneous emotes and mob communication to get rid of "It's". mobs are by default plural, they arent objects, instead replaced with "they're" etc... a mobs and mob subtypes gender WAS respected
also gave the male gender to two very specific clown mobs which are clearly coded male. gave the void_corgi a neuter gender, since its description makes it a reference to the "void stares back" phrase, which makes it genderless as the void is not a noun.
EDIT: oh, and i did fix an issue with the replace_pronouns() proc, which uses "msg" as its var, but one if statement was "message".