I've always found grating that xenobiology had access to species they had no business working with, and slime magic can only explain so much. My idea is to separate those species into their respective departments/antags, instead of having them all into a centralized, cheap source.
Androids should be made by robotics through augmentation
Podpeople are a botany feature
Skeletons should be limited to liches or other magic antags
Zombies should stay limited to romerol
Golems are still available in adamantine slimes (and luminescents can morph into golems with them)
Shadowpeople still lack an official place, but luminescents can become shadowpeople with black cores
The basic races are mostly human and lizard, and there are mutation toxins for those in case someone wants their species back after bodyswapping/ling mutation sting/etc.
I don't believe byond supports proc dispatch by arguments, so it's just
calling the same proc on the relic instead of the global proc and
throwing away the extra arguments, this infinite loop will surely end
the server
* Refactor radio message broadcasting in a major way
Broacast_Message and everywhere that uses it, including radio talk_into
and the telecomms broadcaster and allinone. Other telecomms machinery
has had dead code excised.
Functionality should be roughly the same as before, but:
- CentCom headsets are only magic when using the CentCom frequency
- Syndicate frequency speech on the station no longer double-talks
- Talking directly into an intercom or radio which also has its
microphone on no longer double-talks.
* Split signal/vocal into subspace and subspace/vocal
* Move the message server and its computer to telecomms folder
* Slightly tidy the message server and computer
* Move subspace receiver logic to a proc on signal/subspace
* Repath the message server under machinery/telecomms
* Largely get PDA messages onto subspace proper
* Actually require the server for PDA messages
* Improve signal/subspace/New() and copy()
* Improve input handling on the message server
* Fix initialization and Z checks of allinones
* Add a constructor for virtualspeaker
* Fix radiation storms initializing a bad virtualspeaker
* Fix runtimes with machines talking into radios
* Finish making the message server a real telecomms machine
* Make CTF radios independent also
* Fix window IDs of message server PDA photos
* Replaces a bunch of manual OPENCONTAINER checks with helper procs
* Removes unnecessary vars
* Updates reagent bitflags, adds some new ones
* Replaces most of the is_open_container calls with more specific ones
* Puts new AMOUNT_VISIBLE flag to use
* Uses new helper procs in more objects
* Standardizes chemicals logging
* De-snowflakes two more checks
* Fixes
* Minor fixes and improvements
I had some time free, and noticed how awful the reagent grinder code was - it used huge static lists containing types and their associated reagents from grinding.
This is now split into two new vars on /obj/item - var/list/grind_results and var/list/juice_results, as well as two new helper procs, on_grind() and on_juice() to allow those to change based on conditions like plant potency. Such checks and the like have been moved to that. If any of these procs return -1, the operation is canceled.
I also fixed some of the recipes that didn't work. The reagent IDs for them didn't exist, leading me to believe that they weren't tested. I corrected that! (I've tested every single recipe in this PR, with the exception of a few juicing-related ones.)
* big batch of loc assignments
* Update emergency.dm
* Update spiders.dm
* Update parrot.dm
* Update ripley.dm
* Update firealarm.dm
* seems to work
* this maybe works?
* brainmemes, again
* stuff
* fix brainmob, camera runtimes
* Adds emergency lighting
* Checks for the cell during construction
* Adds AI/APC control of emergency lights
* Malfunction ability
* get_area(src)
* Loop checking, processing to come when clarified
* that DOES remind me to do this!