* Admins can now save custom shells (#61307)
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
* Admins can now save custom shells
Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
* Disables wrenching on money bot and scanner gate shells when they are locked (#61274)
* Tweaks to wrenching
* Addresses comments
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
* Disables wrenching on money bot and scanner gate shells when they are locked
Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
* Refactors how components are triggered and refactors how ports are ordered (#60934)
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
* Refactors how components are triggered and refactors how ports are ordered
Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
* adds a gun circuit shell (#61156)
adds the circuit gun shell, every projectile it hits with outputs the shot mob, everytime its shot charge from an attached circuit is transferred to it, it deals no damage
increases the range of the to string circuit to 7 tiles from 5, now should get everything in view range
* adds a gun circuit shell
* Update gun.dm
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
* [s] Audits object say() uses to make handling text more safe (#61147)
Made all say()s deal with encoding, audited all uses of say() to prevent double encoding or like, manually inserting span().
I left some stuff without sanitize that only draws from the code, since it's hell to clean up otherwise. That
and I let admins do whatever the fuck they want
* [s] Audits object say() uses to make handling text more safe
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* [s] Patch a server crashing exploit (#61057)
if you create a bunch of signallers then spam the send signal button you can grind the server to a halt at low numbers and crash it at high numbers of signallers
This is an imperfect fix as a proper fix would refactor signal datums to use a subsystem but I dont feel like rewriting all of signal code thank you very much
Co-authored-by: Zephyr <12817816+ZephyrTFA@ users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* [s] Patch a server crashing exploit
Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
Co-authored-by: Zephyr <12817816+ZephyrTFA@ users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Del The World: Unit testing for hard deletes (#59612)
Co-authored-by: SteelSlayer <42044220+SteelSlayer@ users.noreply.github.com>
* Del The World: Unit testing for hard deletes
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: SteelSlayer <42044220+SteelSlayer@ users.noreply.github.com>
* Moved all the integrated circuit core files into a new subfolder called core (#60787)
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
* Moved all the integrated circuit core files into a new subfolder called core
Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
* Input ports now connect to multiple output ports. Remove combiner. (#60494)
* tgui bsod
* debug disconnections
* prelim
* recomment
* set_value -> put ._.
* DAMN IT
* reinsert subsystem
* prepare
* unditch signals
* remove combiner
* remove combiner some more
* how did router.dm get here? deleting.
* These two COMSIGS should be one.
* critical typo
* inline cast
* have your signals
* Have your set_input & set_output.
* make compile
* upgrade save/load to n-to-n-wires
* have your documentation
* have your unsafe proc
* pay no attention to the compile errors
* unlist the ref
* paste my for block back in ._.
* fix manual input
* oops pushed too soon
* Have your !port.connected_to?.length
Co-authored-by: Watermelon914 <37270891+Watermelon914@ users.noreply.github.com>
Co-authored-by: Watermelon914 <37270891+Watermelon914@ users.noreply.github.com>
* Input ports now connect to multiple output ports. Remove combiner.
Co-authored-by: Gurkenglas <gurkenglas@hotmail.de>
Co-authored-by: Watermelon914 <37270891+Watermelon914@ users.noreply.github.com>
* Fixes admins not being able to open circuits from anywhere (#60775)
* Observers can now read circuits from anywhere + fix obscure tgui bug
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
* Fixes a small problem with the pathfinding path and the robot fix merge (#60751)
* Fixes a small problem with the pathfinding path and the robot fix merge
Co-authored-by: TheSmallBlue <ilanmori@hotmail.com>
* Moves most circuit defines to files (#60705)
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
* Moves most circuit component defines to files to reduce the amount of scattered code.
Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
* Refactors port types completely and adds the option type. Refactors options to use this new type (#60571)
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
* Refactors port types completely and adds the option type. Refactors options to use this new type
Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
* Removes required_shells var on circuit components not allowing them to be placed in an integrated circuit. (#60661)
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
* Removes required_shells var on circuit components not allowing them to be placed in an integrated circuit.
Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
* Circuit component descriptions and module names are now visible to the naked eye. (#60545)
* Circuit component descriptions and module names are now visible to the naked eye.
Co-authored-by: Gurkenglas <gurkenglas@hotmail.de>
* Cool sprites and animations for module duplicator (#60540)
imageadd: Added new sprites and animations for module duplicator
* Cool sprites and animations for module duplicator
Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
* Give ghosts the ability to examine BCIs (#60500)
Examining a mob with a BCI inside them will now give you the ability to look at it. Helpful for admins, but also keeps in line with every other circuit shell.
* Give ghosts the ability to examine BCIs
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
* Adds the ability to save/load circuits for admins. Adds the ability to duplicate modules in a round. (#60222)
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
* Adds the ability to save/load circuits for admins. Adds the ability to duplicate modules in a round.
* a
Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
* Brain-computer interfaces, circuits in your brain (#60338)
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
* Brain-computer interfaces, circuits in your brain
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
* Fixes index table circuit component outputting a table rather than a list (#60348)
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
* Fixes index table circuit component outputting a table rather than a list
Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
* Adds the scanner shell. (#60325)
Adds the scanner shell that lets you scan objects. Not much else than that.
* Adds the scanner shell.
Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
* Circuit submodules (#60109)
Adds the module component that is basically a subroutine. Allows you to compact your logic into a bunch of functions.
* Circuit submodules
Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
* Adds temperature and pressure sensors to circuits (#59993)
Co-authored-by: Watermelon914 <37270891+Watermelon914@ users.noreply.github.com>
* Adds temperature and pressure sensors to circuits
Co-authored-by: obsol <33932119+read-0nly@users.noreply.github.com>
Co-authored-by: Watermelon914 <37270891+Watermelon914@ users.noreply.github.com>
* Fixed being able to insert infinitely many components into a shell. Fixes being able to view the shell's circuit in a locked shell. (#59962)
* Fixed being able to insert infinitely many components into a shell. Fixes being able to view the shell's circuit in a locked shell.
Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
* RAM now has an option to select between types. Refactored the any type to be more friendly with circuit code. (#59953)
RAM now has an option to select between types and an output signal. Refactored the any type to be more friendly with user displays.
Code that includes changing type is no longer hard to read because of snowflake code for the "any" type.
RAM can now more easily act as a constant value component.
RAM also has an output signal because it should and the fact that it doesn't was an oversight when converting everything to use input and output signals.
* RAM now has an option to select between types. Refactored the any type to be more friendly with circuit code.
Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
* Adds crew monitor usb connections and fixes the soundemitter's frequency port (#59942)
Adds crew monitor usb connections and fixes the soundemitter's frequency port
Allows you to view health and stuff.
* Adds crew monitor usb connections and fixes the soundemitter's frequency port
Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>