Commit Graph

69 Commits

Author SHA1 Message Date
Watermelon914
41301892c9 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>
2021-09-07 17:02:02 -04:00
Watermelon914
6152eb96b3 Adds instant integrated circuit execution for event handling circuits. (#61205) 2021-09-06 04:06:20 -07:00
Watermelon914
126411f405 Refactors how components are triggered and refactors how ports are ordered (#60934)
Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com>
2021-09-03 02:22:39 -07:00
Fikou
9814934605 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
2021-09-02 19:29:49 +01:00
LemonInTheDark
1f5e76a39f [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
2021-09-02 08:36:36 +01:00
Watermelon914
4fb589ba7b fixes html execution with circuits (#61143)
Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com>
2021-08-31 16:39:27 -07:00
TiviPlus
5a59713592 [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>
2021-08-26 14:23:47 -07:00
manofpepsi
961bda6455 fixes the admin message when a circuit with admin_only = 0 gets executed (#60921) 2021-08-19 18:49:16 -07:00
Watermelon914
882928ba89 Fixed duplicator (#60912)
Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com>
2021-08-18 20:46:38 -07:00
Gurkenglas
781af013d7 fix ntnet circuit components (#60917)
* fix ntnet

* fix typos and switcheroos

* whoops, tracked a test circuit json.
2021-08-18 20:46:24 -07:00
SmArtKar
25d92590c4 Fixes NTNet Transmitters not working (#60871) 2021-08-16 00:25:46 -07:00
LemonInTheDark
cd576ab519 Del The World: Unit testing for hard deletes (#59612)
Co-authored-by: SteelSlayer <42044220+SteelSlayer@users.noreply.github.com>
2021-08-15 21:09:26 -07:00
Colovorat
786faef4a7 Fixes right click on circuit controller (#60840)
Co-authored-by: Colovorat <lolqwert569@gmail.com>
2021-08-15 15:47:49 -07:00
Watermelon914
4336687d16 Moved all the integrated circuit core files into a new subfolder called core (#60787)
Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com>
2021-08-13 12:16:01 -07:00
Mothblocks
56f8d3650f Fix merge skew from NTNet components (#60845) 2021-08-13 12:15:03 -07:00
SmArtKar
47f039ffbc Adds 3 new NTNet components (#60557)
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-08-13 11:53:48 -07:00
Watermelon914
05ede8dc30 Adds Circuit variables (#60590)
Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com>
2021-08-12 18:30:50 -07:00
Gurkenglas
e0fad671fd 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>
2021-08-11 18:48:29 +03:00
Mothblocks
bc4f50cc3e Fixes admins not being able to open circuits from anywhere (#60775) 2021-08-09 16:56:37 +03:00
TheSmallBlue
2eabd28a06 Fixes a small problem with the pathfinding path and the robot fix merge (#60751) 2021-08-08 00:20:25 -07:00
Watermelon914
0deb859b3c Moves most circuit defines to files (#60705)
Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com>
2021-08-07 16:16:18 -07:00
SmArtKar
e024d8e915 Adds scanner gate shells (#60558) 2021-08-05 12:08:06 -07:00
Mothblocks
dc6d079899 Add admin panel for viewing circuits (#60504)
* Add admin panel for viewing circuits

* Resizable, make wider

* Better info, button to open panel

* Add saving/duplicating
2021-08-04 19:08:08 +02:00
Y0SH1M4S73R
2075f8bde3 Fixes List Literal Components (#60670) 2021-08-04 09:41:50 -07:00
Watermelon914
13296f5f74 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>
2021-08-04 09:06:48 -07:00
Watermelon914
961c9ab19e 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>
2021-08-03 13:05:08 -07:00
Gurkenglas
d6dd864c23 Multiplexer gains extra outputs and wraps out-of-range indices. (#60462)
* Multiplexer also selects output port, indices wrap

* Remove broken multiplexer type changer

* Scratch that. Wasn't broken.

* Document WRAPACCESS

* Rename Multiplexer to Router

* Address review.

* typo

* Address review.

* fix partial rename

* Address review

* double desc
2021-08-03 12:23:09 +02:00
Watermelon914
96f1c2abae Adds the bare minimum admin components and allows admins to define list literals. (#60240)
Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com>
Co-authored-by: carshalash <carshalash@gmail.com>
Co-authored-by: tgstation-server <tgstation-server@tgstation13.org>
2021-08-02 01:50:06 -07:00
SmArtKar
0432d97d7c BCI overlays and click interception (#60503) 2021-08-02 00:19:48 -07:00
Gurkenglas
aa018a857a Circuit component descriptions and module names are now visible to the naked eye. (#60545) 2021-07-31 21:19:43 -07:00
SmArtKar
11e56c5f05 Gives servers a USB port (#60564) 2021-07-31 21:11:06 -07:00
SmArtKar
c74c8bd928 Cool sprites and animations for module duplicator (#60540)
imageadd: Added new sprites and animations for module duplicator
2021-07-31 07:03:50 -04:00
Mothblocks
6c15afa89e 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.
2021-07-29 11:33:09 -03:00
Watermelon914
ac2efd9b86 Removes Destroy overrides from most circuit components (#60492)
Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com>
2021-07-28 18:31:42 -07:00
Mothblocks
bd6873fd4d Remove nanites (#60473)
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
2021-07-28 16:00:56 -07:00
Watermelon914
548f924c21 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>
2021-07-28 14:26:50 -07:00
Mothblocks
fc711a828e 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
2021-07-26 23:10:16 +12:00
TheSmallBlue
c96effce0a Adds a Pathfinding circuit component (#60095) 2021-07-26 04:08:33 -07:00
Watermelon914
1ced10e9bf Fixes index table circuit component outputting a table rather than a list (#60348)
Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com>
2021-07-21 15:30:00 -07:00
Watermelon914
0246226a52 Adds the scanner shell. (#60325)
Adds the scanner shell that lets you scan objects. Not much else than that.
2021-07-20 20:19:02 -03:00
TheSmallBlue
1f928d1c5d Adds the "To Number" circuit component (#60202)
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-07-19 14:02:24 -07:00
Watermelon914
5a21e2e64c Circuit submodules (#60109)
Adds the module component that is basically a subroutine. Allows you to compact your logic into a bunch of functions.
2021-07-17 01:05:57 -03:00
Kylerace
44779b794c makes get_hearers_in_view() faster AGAIN, fixes issue with previous optimization (#60219)
fixes #60197
woke up today with a ridiculous idea of semi-automatic compile time loop unrolling, wasnt worth the complexity in the least but it made the basis of this PR which i then continued work on. makes area_sensitive_contents into a more general system of important_recursive_contents where we can define reasonable uses to replace recursive contents iteration of the type found in get_hearers_in_view() as long as everything that uses it isnt something incredibly common to the point that it noticeably increases memory usage.
2021-07-17 00:49:55 -03:00
obsol
9c46c01439 Adds temperature and pressure sensors to circuits (#59993)
Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
2021-07-04 16:47:32 -07:00
TheSmallBlue
63da37d8ef Adds the "Split" circuit component (#59950) 2021-07-04 16:39:03 -07:00
Watermelon914
ebac974568 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) 2021-07-03 14:59:38 -03:00
Watermelon914
16d89a146e 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.
2021-07-03 14:46:13 -03:00
Watermelon914
11dd7a852b 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.
2021-07-03 14:43:35 -03:00
Watermelon914
3356f5d2ab Fixed cooldowns for speech and soundemitter circuit components. Brought speech component more in line with other components. (#59958)
Fixes to the cooldowns. Also circuits now use an input trigger/output trigger system which the speech component hadn't yet adopted because it was made before that system was introduced and left out when changing most components to use this system.

Also temporarily disables input/output signal ports for the prebuilt speech relay circuit until I can properly code in a way to load circuits.
2021-07-03 14:42:42 -03:00
Watermelon914
5e6a90a0d5 Limits the maximum string length of a circuit component port to 5K characters (#59959)
People could duplicate string lengths to the point where UIs break (and maybe OOMs though it'd take a while).
2021-07-03 14:41:32 -03:00