Makes reinforced glass a subtype of glass, cleans up window creation copypasta.
Cleaned up window initialization leaking outside of the window constructor.
Removes unnecessary init_dir var from windows.
- More stuff now triggers powernet warnings: People getting shocked by machinery (primarily door, but can be anything else powered by APC), and grilles. Thanks to @mwerezak for suggestion.
- Monitoring computer now has slightly different icon_state when it detects powernet warning. This is checked and updated every 5 MC ticks (ie, slightly delayed)
- Fixes ocassional runtime in powernet_sensor.dm
- Powersinks buffed a bit more. Drain rate changed from 0.6MW to 1MW. 1MW is full output of main engine SMES.
- Powersinks also dissipate small amount of internal energy charge over time. (20kW)
- Adds remote powernet sensors, power monitoring computers use these by default to monitor power around the station. Default range is 1 Z level + long range versions of sensors
- Powernet sensors mapped in, each subgrid has it's own one (ie: substations compatible)
- Telecomms, mining, research and engineering outposts have long range versions installed, visible even cross-Zlevels
- Powersinks and ninja gloves now trigger problem warning in powernets they affect. This warning is visible to anyone using power monitoring console. TODO: Add more stuff that triggers warnings.
- Powersinks now properly drain APC cells using CELLRATE (@2000W per APC max.)
- Powersinks buffed a bit, to compensate for CELLRATE change (previous line)
This includes labcoats, IA jackets, first responder jackets, and the brown leather jackets.
This way, code for button toggling doesn't have to be duplicated for labcoats and other coats, and it's easier to add other types of coats that can be buttoned up if someone wants.
Removes the 2-tick sleep cause by every closet in New().
Moves the code that sucks up items into closets to initialize() to avoid processing still null objects.
Bartenders, chefs, and janitors now have their own service frequency and corresponding headset.
The HoP is listening to this channel by default.
Creates a proper locker for the chef's extra gear.
Telecommunication interruption no longer permanently disables the ability for synths to state laws if they attempt it during the downtime.
If a synth attempts to state laws during telecommunication interruption it now receives a clear feedback message about its impossibility.
Fixes runtime errors when AIs uses shortcut keys to operate APCs/turret controls when the corresponding window isn't open.
Adds missing AI-restriction check for turret controls.
Airlocks no longer lie about dropping bolts when they cannot be dropped.
Synthetics can no longer magically print color images on a black-and-white photocopier.
No longer possible for organics to acquire a synth-image by un-attaching it from a newscaster.
News articles now come with a timestamp and photo captions, if anything was penned on an attached photo.
Reception-checks no longer unconditionally sleeps the thread. Was causing havoc with NanoUI.
Misc. code refactoring.
Synths replying to messages through their PDA log or chat window should no longer cause the tapping message to appear.
Unsure if pAIs ever tapped, risk now greatly reduced.
Enables dismantling of a window (100% return) with a wrench, if the
window is fully unsecured. Windows which cannot be dismantled will
return a message saying so for clarity. Dismantling displays a visible
message for clarity.
Continues the wiring upgrade. Now cameras, airlocks, robots, and air alarms also use the new wire datum system.
Global wiring code is now removed but there are sneaky objects which didn't rely on them such as mulebots and autolathes.
Fixes a few issues from the previous upgrade.
Channel names are already HTML-stripped on creation. Removes second HTML-stripping when attempting to post a new story as this appears to break name comparison later.
PDAs should now properly display stories with newlines.
Double quotes will no longer break the json nanoui uses to display the data.
This fix removes the ability to use html and javascript (exploitable for nefarious reasons)
Specifying exactly what we want instead of assigning nanoui_data["exploits"] = L.fields
which passes by refernce instead of by value.
It allows us to also sanitize the input so everything that gets displayed in nanoui doesn't have html
Adds sorting to the custom gear menu list.
Adds the white cheongsam as a custom gear item.
Moves the purple comb out of the custom item defines as it is no longer
just a custom item.
Adds pockets to the bomber jacket.
Reduces the cost of ponchos to 3.