Commit Graph

343 Commits

Author SHA1 Message Date
WarlockD b17f9ba018 Wiremod assoc_literal circuit component was missing from the lathe (#62818)
Was looking for a way to make a cache list when I noticed the assoc_literal component wasn't in the lathe
I rather cache a list of stuff than continuously run foreach/searchs on data from the ntnet or otherwise.
2021-11-16 23:02:31 +00:00
Ghom 21c89ba12b Reagents scanner circuit component (#62704)
It allows people to make circuits objects that interface with reagents.
2021-11-10 19:35:44 +00:00
Ghom 45e7aeda84 Material Scanner circuit component (#62677)
* Material Scanner circuit component

* get_turf(src) to get_location()
2021-11-09 23:08:55 -05:00
John Willard 6c0aba5da4 removes double spaces AFTER symbols (#62515)
* removes double spaces AFTER symbols

* found more
2021-11-03 21:09:35 -04:00
Y0SH1M4S73R 9036c91504 Adds the assembly shell (#62307)
Adds the assembly shell, which can be attached to wires and other assemblies like proximity sensors, timers, etc. Because assemblies already have screwdriver interaction that gets overriden by the shell component, the regular assembly screwdriver interaction can also be performed with right-click. This can be seen on examine.
While currently, circuits can interact with wires and such using remote signalers and the radio component, this has its limits, such as the possibility that someone else uses the same frequency/code combo. With the assembly shell, you can put all your circuit logic into the attached assembly.
2021-11-02 21:28:11 +00:00
Mothblocks 0f3c4e51f7 Modernizing Radiation -- TL;DR: Radiation is now a status effect healed by tox healing, and contamination is removed (#62265)
Implements the Modernizing radiation design document ( https://hackmd.io/@tgstation/rJNIyeBHt ) and replaces the current radiation sources with the new system, as well as replacing/removing a bunch of old consumers of radiation that either had no reason to exist, or could be replaced by something else.

Diverges from the doc in that items radiation don't go up like explained. I was going to, but items get irradiated so easily that it just feels pretty lame. Items still get irradiated, but it's mostly just so that radiation sources look cooler (wow, lots of stuff around going green), and for things like the geiger counter.

Instead of the complicated radiation_wave system, radiation now just checks everything between the radiation source and the potential target, losing power along the way based on the radiation insulation of whats in between. If this reaches too low a point (specified by radiation_pulse consumers), then the radiation will not pass. Otherwise, will roll a chance to irradiate. Uranium structures allow a delay before irradiating, so stay away!
2021-11-01 04:20:39 -03:00
Watermelon914 44a2af780d Integrated the component printer into the integrated circuit UI. You can now link integrated circuits to component printers (#62287)
Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com>
2021-10-28 11:42:57 -07:00
Ghom 585f1119e3 Binary and Decimal Conversion Components. (#61889)
Added a couple components that convert a number into an array of binary digits and viceversa.
May help players mak more complex and advanced components without filtering those lacking knowledge in the binary field.
2021-10-23 08:03:26 +01:00
Mooshimi 7933de0f48 Put drone spawners back (#61836)
* adds 1 pipe

* add prefilled drone spawners to robo maints

* remove research node for drones

* remove drone from mech fab (uneeded)

* switch
2021-10-22 09:29:41 -04:00
Ghom 88b420d240 Trigonometry circuit component (#61885)
Adds a trigonometry circuit component to the game.
2021-10-16 19:25:30 -04:00
Ghom 9c7d509354 Printer Circuit Component (#62012)
I'm adding a circuit component that can print text string on a paper object in a variety of colors and font typefaces (currently only web-safe ones are available, maybe i'll add some fancy ones in the future but they'd need to be imported either through @import of @font-face in a separate CSS not imported by every tgui UI).
It's important to note that because the UI sanitizes new text inputed by users and not what's already written on the paper (so the pen_color and pen_font don't be purged in the process), we can't safely have these strings "printed" into the info variable directly, because of that these values will be stored in two new list variables, one for the text and one for font color, face and the signature. When the paper sheet UI is opened, these will be sanitized and then parsed into the text, so the next time the paper is edited we can clear these two lists.
Obviously better than a hacky byond proc - parsemarkdown() is outdated af -, albeit a bit messy... like the rest of paper code.

Requires #62033.
2021-10-14 19:37:39 +01:00
Ghom 6c5766c62e timepiece circuit module (#62039)
Adds a circuit component that outputs the station time in chosen format and unit of time when triggered. The options are currently 24-hour and 12-hour for the time format, hours, minutes and seconds for the unit of time.
The component is called timepiece because clock was already taken by another component that sends signal outputs at intervals.
2021-10-12 14:32:30 +01:00
Watermelon914 0cc06cf6ec Fixed dispenser and new circuit list components not being available (#61960)
Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-10-09 04:31:15 -07:00
Ghilker cc3bf70da9 Rad collectors gone, tesla coils to generate power (#61917)
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-10-08 17:03:52 -07:00
LemonInTheDark c8684800ba Removes dead code in techwebs, alongside some truly evil macros (#61936)
fuck you kevin
2021-10-06 22:55:07 -07:00
Watermelon914 d15b305527 Refactors the list datatype to support composite lists. Adapts a lot of circuits to be able to properly use composite lists. Adds the dispenser shell (#61856)
Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com>
Co-authored-by: Colovorat <35225170+Colovorat@users.noreply.github.com>
2021-10-06 22:51:36 -07:00
John Willard 4241ec8192 ovens can now be researched (#61804) 2021-10-01 15:59:03 -07:00
Sealed101 31839d0089 Adds a new type of Experiment Scans: Machinery Scanning (#61640)
* proof of concept

* pinpoint scan type

* whoops

* whoops take two

* parenting

* moving it all to use points, hacky desc edits included

* adding experiments to techweb v1

* v2 + descriptions

* v 2.5

* review compliance
2021-10-01 14:34:05 -07:00
TheSmallBlue 6fde2a7b9f Adds the Proximity Pinpointer circuit component! (#61574) 2021-09-21 17:12:29 -07:00
remuluson2 c7b390ba06 Razor Update (#61547)
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-09-21 16:36:00 -07:00
DeltaFire 9ba53dff70 Makes copy_research_to slightly better, regarding revealing hidden techs (#61498) 2021-09-18 22:55:11 -07:00
Mothblocks 5a4c87a9fc tgui Preferences Menu + total rewrite of the preferences backend (#61313)
About The Pull Request

Rewrites the entire preferences menu in tgui. Rewrites the entire backend to be built upon datumized preferences, rather than constant additions to the preferences base datum.

Splits game preferences into its own window.

Antagonists are now split into their individual rulesets. You can now be a roundstart heretic without signing up for latejoin heretic, as an example.

This iteration matches parity, and provides very little new functionality, but adding anything new will be much easier.

Fixes #60823
Fixes #28907
Fixes #44887
Fixes #59912
Fixes #58458
Fixes #59181
Major TODOs

Quirk icons, from @Fikou (with some slight adjustments from me)
Lore text, from @EOBGames (4/6, need moths and then ethereal lore from @AMonkeyThatCodes)
Heavy documentation on how one would add new preferences, species, jobs, etc

    A lot of specialized testing so that people's real data don't get corrupted

Changelog

cl Mothblocks, Floyd on lots of the design
refactor: The preferences menu has been completely rewritten in tgui.
refactor: The "Stop Sounds" verb has been moved to OOC.
/cl
2021-09-15 10:11:11 +12:00
Sealed101 7f21c15ea0 Fixes RnD experiment discounts applying indefinitely (#61258)
Discount experiments have been decreasing required points for nodes indefinitely, resulting in research costs being like Industrial Engineering here:

Curiously, this didn't mean free research points for reasons unknown to me.
I believe this has been going on for the entire lifespan of Experisci and nobody reported it. Yet here I am, an RnD main fixing something that's my lifeblood.

Discounts aren't supposed to grow into 1450%+ discounts over time.

RnD discount experiments now reduce the proper amount of points needed instead of gradually growing into a 100% free tech node.
2021-09-08 01:44:57 -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
manofpepsi c3d5009b19 puts chem mass spectrometer inline with other machines (#60896) 2021-08-18 20:48:16 -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
AMonkeyThatCodes 83b21c041b Kitchen expansion part 2: Ovens (#60515)
Adds Ovens

Co-authored-by: MonkeyThatCodes <monkey>
Co-authored-by: tralezab <spamqetuo2@gmail.com>
Co-authored-by: MonkeyThatCodes <MonkeyThatCodes@deez.com>
Co-authored-by: Krysonism <robustness13@hotmail.com>
2021-08-09 12:31:16 +02:00
SmArtKar e024d8e915 Adds scanner gate shells (#60558) 2021-08-05 12:08:06 -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
InvalidArgument3 b10397cf67 Exosuit Proto-kinetic Accelerator (#60384)
Adds new equipment for mechas: the Exosuit Proto-kinetic Accelerator, unlocked with the mining tech research. Compared to the standard one, it is able to hit 5 tiles away with a low cooldown.

However, unlike the handheld version, it draws a considerable amount of power from the battery, pretty much requiring you to bring generator equipment or upgraded parts.

The projectile is identical to the standard handheld version otherwise and will do little damage in pressurized environments.
2021-07-29 11:27:13 -03: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
Ghilker d0e0b81503 Gas Masks Properly filter now (#58529)
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>
2021-07-22 00:23:54 -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
Matthew J 5a5cf6933e Rust Component / Wirebrush Rust Remover (#59977)
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-07-07 03:45:57 -07: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
Bobbahbrown 972cd3de61 introduce advanced sucking functionality to custodians (+ bonus GAGging) (#59925)
* base sucking functionality

* functional upgrade and upgrade refactor

* minor tweak here

* finish overhaul of upgrades, add gags-ified upgrades

* add documentation (you love to see it)

* update sucking sound

* do some of the requested cleanup, fix key going into trash bag, add right click func
2021-07-04 00:29:46 +02:00
Watermelon914 02f0fe75fa Adds the sound emitter circuit component (#59866)
Adds the sound emitter circuit component. Allows the integrated circuit to play a sound of varying volume and frequency.
2021-06-30 15:38:31 -03:00
Watermelon914 7e9e2df721 Adds USB to arrest consoles. Adds list circuit components. (#59850)
Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-06-29 13:23:14 -07:00
Watermelon914 921416b5d8 Adds the airlock shell, refactors USB code to be easier to use, implements USB cables for the binary valve and more. (#59728)
Adds the airlock shell. The circuit has full control over the airlock.
Refactors USB code to be easier to use for less experienced coders.
Implements USB cables for the binary valve to be able to open/close the valve.
Adds a private channel for radios that only lets circuits with the same owner's ID to interact with it.
2021-06-24 14:22:19 -03:00
Watermelon914 2c0288ffe0 Adds the MMI circuit component. Allows inputting signals into circuit component ports (#59743)
Adds the MMI component which outputs signals whenever they click somewhere/try to move.
Allows inputting signals into ports, making it easier to debug integrated components.
2021-06-24 14:14:29 -03:00