Commit Graph

319 Commits

Author SHA1 Message Date
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
Watermelon914
f92403f3ed Added circuit component UI details, added multiplexer and allowed inserting components directly into shells. (#59635)
Adds the multiplexer circuit component - en.wikipedia.org/wiki/Multiplexer
Circuit components can now be directly inserted into shells rather than having to take the integrated circuit out.
Special information can be accessed from components now through the "Info" button besides the eject button on a component.
2021-06-23 18:34:19 -03:00
Mothblocks
4007f74490 USB Cables -- Connect circuits to computers/machines (#59345)
* Initial commit

* Sprites, finishing work

* More ways to detach from circuitboards

* Clear TODOs, give bots a button

* Fix qdel loop

* Designs

* It's the bots that have them

* Grammar fix

* Feedback for connecting to circuit directly

* Add USB cable design to basic circuitry

* Better naming

* Feedback

* Fix for new code

* COMSIG_CIRCUIT_ADD_COMPONENT_MANUALLY

* span procs
2021-06-15 14:23:16 -04:00
tralezab
d4391e19ea Two Person Mecha for Robotics: The Only Real Solution To An Imminent Geometer Summoning 💪 (#59249)
Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
2021-06-07 14:40:30 -07:00
Watermelon914
f2b39b6803 More circuit components. Restructures the circuit components folder to be more organised. (#59459)
Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com>
2021-06-04 21:38:30 -07:00
Mothblocks
9af622d149 Splits node design IDs into multiple lines in alphabetical order with trailing commas (#59470)
Splits node design IDs into multiple lines in alphabetical order with trailing commas.

This helps to prevent merge conflicts, as well as it making it easier to read. This has proven to be important with circuits, where multiple people want to add new components, but will end up inevitably conflicting on each other.

Also, aligns with the contribution guideline to not use tab alignment.
2021-06-04 12:15:59 -03:00
Fikou
665bc0e703 borg disabler cooler now only gets added if secborgs arent disabled (#59307) 2021-05-27 04:35:16 -07:00
Watermelon914
b84a9f97b2 Integrated Circuits (Wiremod) (#59232)
Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: ATH1909 <42606352+ATH1909@users.noreply.github.com>
Co-authored-by: Maurukas <66576896+Maurukas@users.noreply.github.com>
2021-05-25 11:15:36 -07:00
manofpepsi
9619bc590c Electrolite removal (#59019) 2021-05-12 01:59:50 -07:00
RandomGamer123
23803741c2 Readded anomaly research (#58790) 2021-04-30 03:45:06 -07:00
tralezab
8f420e7cca Removes Crystal Invasion (#58711) 2021-04-27 18:26:19 -07:00
Jonathan Rubenstein
456e475da5 Renews Maintenance Drones (#58249)
It's the second try! (First: #48456)

Drones are little robots inspired by Keepers from the Mass Effect games. With laws to maintain both the station, and their distance from the matters of others, they were a great ghost role that let you fix up the station when you were otherwise out of the round. They were in the game for quite a while, but were abused. The abusive players completely ignored the laws and did whatever they wanted. Being tiny ventcrawlers, this became a huge issue for admins.

I attempted to bring them back, this time with some gameplay restrictions to enforce their laws a bit better. It seemed to go well, but I required headmin approval, and this all happened near a headmin election, so the project died.

Recently, some people have wanted to bring drones back. So, they gave me a ring, and I started a discussion with the admin team to see what other changes they would want in addition to the previous ones.

Here are those changes:

    They can't interact at all when close to another being, living or dead
    Their binary chat has been removed to separate them from AI and borgs
    They can only hold a whitelist of items necessary to do their job
    They can only interact with machines necessary to do their job
    The drone satchel is gone, and drones now have built in basic tools
    They also can't interact in some blacklisted high risk areas
    Finally, you must play 40 hours total as a Silicon role in order to play as a drone

Additionally, the drone dispenser is not mapped, and the drones must be researched to be constructed.
Why It's Good For The Game

Drones are a fun way to pass the time, and this time they have a lot less freedom. You can still perform the basic function of maintaining the station, but not without difficulty and tedium. This will allow other station roles to perform much better than the drones, while still letting them chug along at their slower pace.
2021-04-13 13:10:36 +12:00
BootlegBow
3197999fb2 Fixes grammatical error in the "computer hardware" techweb node (#58304) 2021-04-11 19:42:19 -07:00
ATH1909
00239cb046 You can now print cable coils and welding helmets from scilathes and engilathes (#57762) 2021-04-03 00:40:53 -04:00
MrMelbert
b46b586d7b TGUI Limbgrower + Limbgrower refactoring and design expansion (#57955)
Refactors the limbgrower to modernize the code. Now, the limbgrower can accept any type of reagent in limbgrower designs.

Adds simple plumbing demand to the limbgrower, so you can pipe synthflesh into it.

Adds monkey tails, felinid ears and tails, lizard digitigrade legs, lizard tongues, fake lizard tails (unusable in lizard-wine and similar recipes), plasmaman organs, and ethereal organs (minus the heart) to the limbgrower via limbgrower design disks. These disks can be printed from the medical lathe once the required technology has been researched.

Adds a technology node to unlock the limbgrower design disks after advanced biotech, xenoorgan biology. In the future, this could have an experiment requirement - maybe to scan multiple types of species.

Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
2021-04-02 11:01:40 +03:00
AnturK
8b1ffd1e49 Adds explorer drones / adventures. (#57851)
A new side-job for cargo. Prepare and launch exploration drones at distant sites to encounter weird adventures, collect loot and expand the station cargo network. Adventures - the main content type here, can be written by anyone without any knowledge of programming. The purpose here is creating an way of interesting way of delivering lore (and adding some new job content/cargo expansion method).

Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
Co-authored-by: EOBGames <58124831+EOBGames@users.noreply.github.com>
Co-authored-by: Fikou <piotrbryla@onet.pl>
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
2021-03-26 11:38:39 +02:00
Funce
73d29656b7 Add Restaurant and Bar Holosigns to the Protolathe (#57339) 2021-03-03 16:43:50 -08:00
Timberpoes
6744a888eb Creates offstation variants of the protolathe and circuit imprinter for offstation and ghost roles. (#57367) 2021-03-03 16:19:49 -08:00
necromanceranne
c5465c18f8 Adds basic cybernetic eyes to the medical protolathe/exofabricator (#57245)
* Makes the basic cybereyes flash vulnerable, puts the equal to normal eyes in the cybernetic organ node, makes the normal cybereyes prone to fizzling upon being emp'd
2021-02-28 22:46:38 -08:00
Ghilker
99ed48ce8d [Ready]Atmos enhanced. Part 1: Crystallizer and machine recipes (#56889)
* crystallizer
2021-02-27 19:19:43 +01:00
ArcaneMusic
f2e2603297 Adds a new type of botany experiment that tests plants. (#57166)
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-02-25 15:35:01 -08:00
Qustinnus
dc78e93543 Adds tourist robots that order food and drinks from the bar and cafeteria (#57010)
* Adds Tourism Economy

Co-authored-by: Emmanuel S. <emmanuelssr@gmail.com>
Co-authored-by: ATH1909 <42606352+ATH1909@users.noreply.github.com>
Co-authored-by: coiax <yellowbounder@gmail.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-02-25 19:39:02 +01:00
Qustinnus
931a32ffb3 Experi-Sci: Techweb nodes may now require you to perform "scientific" experiments (#54093)
Co-authored-by: Brett Williams <bobbahbrown@gmail.com>
Co-authored-by: Jordan Brown <Cyberboss@users.noreply.github.com>
Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-02-23 13:30:24 -08:00
Mothblocks
0f435d5dff Remove hideous inline tab indentation, and bans it in contributing guidelines (#56912)
Done using this command sed -Ei 's/(\s*\S+)\s*\t+/\1 /g' code/**/*.dm

We have countless examples in the codebase with this style gone wrong, and defines and such being on hideously different levels of indentation. Fixing this to keep the alignment involves tainting the blames of code your PR doesn't need to be touching at all. And ultimately, it's hideous.

There are some files that this sed makes uglier. I can fix these when they are pointed out, but I believe this is ultimately for the greater good of readability. I'm more concerned with if any strings relied on this.

Hi codeowners!

Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
2021-02-14 16:53:29 -08:00
Thalpy
56f7ac0c0a Reaction rates, pH, purity and more! Brings a heavily improved, less explosive and optimised fermichem to tg. (#56019)
Brings a heavily improved, rewritten, and optimised fermichem to tg. I saw that tg seemed receptive to it, so I thought I’d do it myself. If you know of fermichem – there’s a lot changed and improved, so looking at other documents regarding it will not be accurate.

Revamps the main chemistry reaction handler to allow for over time reactions instead of instant reactions. This revamp allows for simultaneous reactions, exo/endothermic reactions and pH consuming/producing behaviours. Most of the reactions in game will now inherit an easy one size fits all reaction.

Temperature mechanics

    Temperature affects reaction rate
    The higher it is, the faster it is, but be careful, as chem reactions will perform special functions when overheated (presently it DOESN’T explode)
    Temperature will increase or decrease depending on the exo/endothermic nature of the reaction

pH mechanics

    Each reaction requires the pH of a beaker to be within a certain range.
    If you are outside of the optimal, you'll incur impurity, which has a negative effect on the resultant chem
    pH of a beaker will change during a reaction
    Reacting Impure chem effects can vary from chem to chem, but for default will reduce the purity of other reagents in the beaker
    Consuming an impure chem will either cause liver or tox damage dependant on how impure it is as well as reducing consumed volume
    Purity can (presently) only be seen with a chemical analyser
    Impure chems can purposely be made by making the reagent with a low, but not explosive, purity.
    A chem made under the PurityMin will convert into the reagent’s failed chem in the beaker.

Optional catalysts

    Reactions can use an optional catalyst to influence the reaction - at the more framework exists from tmeprature, reaction rate and pH changes as a result of a catalyst. Catalysts can be set to only work on a specific reagent subtype. It is preferable to those building upon this code that optional catalysts only affect a subsection of reagents.
    Presently the only catalyst that uses this is Palladium synthate catalyst - a catalyst that increases the reaction speed of medicines.

Reaction agents

    These are reagents that will consume themselves when added to a beaker - even a full one, and apply effects to the total solution. One example being Tempomyocin which will speed up a reaction, or the buffer reagents which change the pH.

Competitive reactions

These reactions will go towards a certain product depending on the conditions of the holder. The example one given is a little tricky and requires a lot of temperature to push it towards one end.
New and charged reactions

(see the wiki for details)

Acidic /basic buffer - These reagents will adjust the pH of a beaker/solution when added to one. If the beaker is empty it will fill it instead.

Tempomyocin - This will instantly speed up any reaction added it is added to, giving it a short burst of speed. Adding this reagent to a reaction will give it a suddent speed boost up to 3x times - with the output purity of the boost modified by the Tempomyocin's purity.5u per 100u will give you 2x, 10 u per 100u will give you 3x. IIt caps at 3x for a single addition, but there is nothing preventing you from adding multiple doses for multiple boosts.

Purit tester - this will fizzle if the solution it is added to has an inverse purity reagent present.

A few other reactions have been tweaked to make sure they work too. An example being meth - see the wikipage linked above.
A note on all reactions

    The one size fits all reaction for all chems generally won’t create impure chems – it is very forgiving. The only thing to remember is to avoid heating reactions over 900 or you’ll reduce your yield, and try to keep your pH between 5 -9.

This PR doesn’t have specific example chems included (except for the buffers) – they will be atomised out and they use the mechanics in more depth
A note on plumbing

I reached out to Time Green and we worked together to make sure plumbing was fine. Time Green did some of his own tests too, and surprisingly it doesn't look like much needs to be changed.
2021-02-11 17:09:07 -03:00