MoreRobustThanYou's datum forensics but it's a component this time.
Fully refactors forensics, including fingerprints, hidden/admin fingerprints, suit/clothing/whatever fibers, and blood DNA residue to /datum/component/forensics.
Adds support for manually adding fingerprints.
🆑
code: Forensics is now a datum component.
balance: NPC humans will now start leaving fingerprints on things they touch!
/🆑
* move door_assembly types to new door_assembly_types.dm
fixed some stupid airlock varedits
made glass airlocks a subtype of their solid variant
* examine door assembly to see what name is set
move airlock emagged description to examine()
* 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
* Refactors disabilities into lists, allowing for independent disability sources
* defines
* Xhuiiiiissss
* living
* did that
* adjusted for traumas
* Updates pacifism and removed remove_all_disabilities from fully_heal to prevent issues.
* makes antur happy
* Lollipop dispensers can push lollipops into people's hands
🆑 coiax
add: A lollipop dispenser in "dispense lollipops" mode can push the
lollipop straight into the targets hand, rather than getting it dirty on
the floor first.
/🆑
Also tidied up and around the robot_items.dm file.
This is a good idea because then you can give people lollipops as a
cyborg that has the lollipop dispenser module.
* Integers instead of numbers
* Brain Trauma additions
* Adds Aphasia
* Adds the aphasia language
* Short window
* nuke exploits GONE
* fixes draggable portals
* psychobrawl won't just kill you if you use it too much, but stuns longer
* Adds anosognosia, and lowers thresholds
* .
* RANDOM GODWOKEN
* Default brain damage is now 0
* antur
* fix 1
* forcemove and afk friend adjustments
* okay it's ready now
* dead people can hear imaginary friends
* Remove extraneous parameters of receive_signal
* Delete unused signal datum procs
* Remove signal/var/encryption in favor of data
* Add and use datum/signal/New
* Clean up PDA and pAI integrated signalers
* Remove unused send_hear proc
* Clean up vars on obj/item/radio, change receive_range to can_receive
* Remove suffix var from radios
* Fix cell timer radios
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
* removed typetext and icontext vars from door assemblies, airlock painter no longer works on door assemblies
removed 'anchored = TRUE, state = 1' copypasta from door assemblies
door assemblies update their name more regularly during construction
added new airlock types to airlock painter on airlocks, and to the RCD
airlock assemblies built with metal are now in a list, you can build many more airlocks
vault door assemblies can be built with 4 plasteel
added a solid version of station2 airlocks, renamed to "public airlock"
glass and mineral sheets are now able to be welded out of door assemblies
* find n replace airlock/glass to airlock/glass_public in maps
door_assembly_glass to door_assembly_public
* made highsec airlocks built with 6 plasteel, removed from RCD and airlock painter
vault doors built with 8 plasteel
removed redundant vars in airlock_types.dm
reverts the dumb rglass 'replacement' addition in door assembly construction
* moved airlock assembly defines to construction defines file
fixed incorrectly named shuttle airlock glass_closed and maint panel protected closed overlays
improved examination message for glass/minerals present in assembly
* airlocks take their dir from the assembly when built from assembly
removed "vertical" variant of survival pod airlock, unneeded
survival pod airlock assembly can have glass applied
solid and glass overlays for survival pod airlocks
* OOPs some airlocks, removes a duplicate door assembly, removes some var edits on maps for a new glass type
* turn copied door assembly code into a proc
some feedback during door assembly construction
door assembly created airlock takes name from base_name if no custom name
moved plasma airlock proc to airlock_types.dm
* Add caltrop component for spikey floor objects
The caltrop component now can be added to any crossable atom, and it'll
act like a shard of glass, or a d4. Additional flags are possible for it
to bypass shoes or ignore people who are walking.
This means d4 don't reimplement shard logic, and also open the window
for caltrop grenades later.
Also, it taught me how components work.
* Code review I
* Caltrop damage is 4
* Cactus hurts
* Whoops
* Ignore restraints = true
* Change transmission_method to use defines rather than magic numbers
* Use MIN and MAX_FREE_FREQ defines when bounds-checking radios
* Remove violently broken "Debug Signals" verb
The relevant Destroy() is never called, making the static pointers list
take lots of memory and be large enough, even at roundstart, to crash
the chat when invoked (25k+ entries).
* Remove unnecessary checks for SSradio not existing
* Move department frequencies from GLOB to defines
* Replace all hardcoded radio frequencies with named defines
* Change the radio filters to be defines
* Use a define for the default signaler code