Removes a very large amount of world loops.
Adds a macro to painlessly generate a global list, and the needed code to modify the list when an object is made or deleted automatically.
Cleans up some commented out code.
* Yes, all of them.
* Also did a few corrections to redundant New() and broken Destroy() along the way
* Renamed the turf_initializer.initialize() proc to InitializeTurf to avoid confusion.
* Subsumed /area/proc/initialize into /atom/proc/initialize() - Made /area's LateInitialize to get same behavior as before.
Allows subspace radios (eg headsets) to have adhoc_fallback enabled on them, which allows them to turn into shortwaves until they reestablish telecomms. I'm doing this for exp/sar/pilot headsets on our server, you can too if you want. What else are those giant antennas for? Up to you. This doesn't change anything for you unless you enable adhoc_fallback on something, but you can use it if you want!
- DJ Station APC turned off at default
- DJ Station one general intercom replaced with a syndicate intercom
- DJ Station headset no longer guaranteed to spawn, one in four chance to spawn in one of the rooms
- DJ Station Exterior tiles (around the generator) marked as outdoor tiles
- Advanced roller beds moved to SAR lockers
- Blood cabinet and IV stand in SAR room, two o- blood bags and two empty blood bags at round start
- Mining outpost now locked to IDs with maintenance access and research access
- Observation windows in xenobio are now electrified
- Extra sinks and a high capacity water tank added to xenobio
- Red flags in the caves to designate the 'border' between the regular caves and the more dangerous ones
- Xenoresearch first aid station door name fixed
Mostly because the old radio-enabled MMIs were almost never used. Changes all MMIs and their subtypes (posi and drone brains) to have a radio inside of them, which can only be used when the brain is outside of a body. This radio can be used to talk over the common channel, in case you get left on a table somewhere by an absent-minded roboticist. However, the radio can also be disabled, in case an antag has you and doesn't want to to scream for help.
Since this makes the old radio-enabled MMIs obsolete, they're no longer printable(although it's still defined in the code so I don't have to touch the map file). Also fixes a telecomms runtime with brains talking over the radio.
Adds toolspeed var, which is a multiplier on how 'fast' the tool works. 0.5 means it goes twice as fast.
Adds usesound var, which determines what sound is used when a tool is being used.
Changes a lot of code to use those two vars instead.
Adds 'ayyy' tools, which are ported from /tg/'s abductor gamemode. They're currently admin only but I might make them obtainable by xenoarch later.
Adds powertools, also from /tg/. CE starts with them in a new toolbelt that spawns in their locker, ported from (you guessed it) /tg/.
Changes welder sprites to look nicer, ported yet again from /tg/. Modified the blue welder slightly so it can be the electric welder sprite.
Adds various sounds from /tg/, for tools and welders.
Subspace Jammers can be bought in the traitor uplink for 25 TC. They are already in the code, but this PR adds them to the uplink.
This PR also adds a power meter to the sprite, as a small QoL change.
They run off of weapon cells and one cell will last for about a minute.
Jams the three devices that I'm aware of that use subspace communications: Headsets, PDAs, and Communicators.
All three will be unable to communicate if in range of a jammer. The default range is 7 turfs, the battery that comes in the jammer is a weapon cell (just to make it a little harder to find replacements) and lasts 60 seconds. The range and power use are variables.
Speaking through a headset will produce 'soft' or 'loud' static depending on how far you are, allowing you to sort of dead-reckon your way to a placed jammer. You can just carry them, otherwise.
I've got no experience with adding tator items so I'll leave that sort of thing up to you guys.
- Fixes sprite issues with departmental intercoms.
- Tweaks to the random objects dm
- Copies Bay's flora and warning sign list, as well as ports some of their signs.
- Addition of a couple new floor decals.
- New table preset, wooden reinforced.
A lot of new defines are now in inventory_sizes.dm, which contains;
All the size identifiers (the thing that tells the game if something is bulky, or w/e).
Storage costs for all the sizes, which are exponents of two, as previously.
A few constants for inventory size.
Also changes all storage item's capacity definitions by basing it off of how many 'normal slots' exist for it. This allows one to change the definition for all of the defines in the file, and everything will follow along without needing to change 500 files. In testing, I made all ITEMSIZE_COST_* defines doubled, and nothing had broke.
The benefit of doing all of this is that it makes adding new weight classes in the future much simpler, and makes knowing how much space a container has easier, as seeing ITEMSIZE_COST_NORMAL * 7 means it can hold seven normal items.
``/mob/dead/observer`` -> ``/mob/observer/dead``
``/mob/eye`` -> ``/mob/observer/eye``
Reason being that they are similar in that they both don't interact with
the world in any way. Some procs were shared, some checks as well, and
it overall makes more sense this way. Plus, there were no ``/mob/dead``
mobs.