* Planet controller startup delay
* Fix the New() on this interfering with my work!
* Creates SSplanets subsystem
For SPEEDYNESS
It probably works. I mean it's hard to sit there for 8 hours and test it. But it seems to work okay. At worst if it doesn't you'll have weather that doesn't make sense. ;v
* Reworks weather to fit the faster weather ticker
* Allows AIs to produce and control maint/construction/mining drones. (#5282)
* Allows AIs to control maint/construction drones.
* Radio control online.
* Things Not Saving
* Drone control respects intellicores.
* Config control, AI drones are disableable if the AI isn't an antag.
* There's a diff so it must have saved. Right?
* No un/wrenching of the core.
* Complies to Replies.
* Folders props, and adds the laser prism, receptor, and sealed doors. (#5337)
* Re-bases props, and adds the laser prism.
* Ver 1 of Puzzle Lock and Doors
* Doors
* Fix door hiccup I made, modify Prism
* Converts merc simple_animal to simple_mob
* Adds new Phase weapons
* Fixes a thing
* Puts phase weapons in cargo
* Moves research designs, adds phase weapons
* Comments out a duplicate design
* Corrects duplicate design ID
* Last commit on this PR, I swear
* Allows AIs to control maint/construction drones.
* Radio control online.
* Things Not Saving
* Drone control respects intellicores.
* Config control, AI drones are disableable if the AI isn't an antag.
* There's a diff so it must have saved. Right?
* No un/wrenching of the core.
* Complies to Replies.
For SPEEDYNESS
It probably works. I mean it's hard to sit there for 8 hours and test it. But it seems to work okay. At worst if it doesn't you'll have weather that doesn't make sense. ;v
* Laser pointers
Adds laser pointers, ported from tg/oldaurora (but heavily modified). They can be found in the loadout, as well as made by science. Science can also upgrade them, which makes them occasionally useful for blinding people, too.
The bugfixes which make several of the features work properly will come in a separate commit.
* Three fixes
Cats now have resting sprites for all 4 directions, instead of just east. This was needed to make cats look like they're pouncing on the laser dot.
Cameras can now be EMPed more than once, and EMPs actually are able to disable them now. This was needed for the shining lasers into cameras feature.
Flash_eyes() now actually displays a flashing animation on your screen when you get flashed (except for silicons, who for some reason are excluded from this unless EMPed). This was needed for laser pointers to have a temporary "blinding" effect when shone into someone's eyes.
(removes errant debug message too, whoops)
* Nerf
Reduced chances of laser pointers doing anything useful on silicons.
Also, fixes a duplicated proc, oops.
* Requested changes
Minor changes as requested - 'cell' to 'diode', view() to viewers(), range() to viewers().
Stops buckled or dead cats from reacting to laser pointers. Zombie cats are fun, but no.
Also, does another small nerf to the effects on silicons.
* Promethean Tweaks Round Howevermany We're On Now
* Tweak again. Drinks only plink damage that can be regenned. Multiple drinks, or other sources of tox will still mean these are dangerous.
* Add Blurb other than just "What has science done?"
* Adds the changelog.
* Fixes the stupid.
* Fixfix @ Ater
* adds an e-reader full of news to the loadout
* Political Almanac -> Pocket Newscaster
* new news channel containing lore-compliant news that's not bad
- Moved pipe construction defines into __defines/construction.dm
- Unified pipe *unwrenching* by creating a standard proc along with the `construction_type` var.
- Eliminated the pipe fitting name & icon_state lookup tables by adding `pipe_state` var on atmos machinery and referencing that.
- Each pipe which can be made from a fitting object should override `pipe_state` with the icon state to be used on the pipe fitting object.
- Eliminated the giant switch statement of doom in pipe construction by delegating that work to `on_construction` proc.
- To make this work, every pipe must implement `get_neighbor_nodes_for_init` which returns a list of nodes which should be re-initialized on that pipe's construction.
- Combined the SCRUBBERS, SUPPLY and REGULAR pipe fitting classes together by storing the `piping_layer` variable and using the `setPipingLayer` procs
- Standardized the code for searching for node neighbors into the `can_be_node` proc.
- This proc is also improved in that is a mutual check, `check_connectable` is called on BOTH objects, so they have to mutually agree to connect as nodes. Eliminates lots of special edge case logic.
- Updated all the `amos_init` procs to use `can_be_node`. In the most common cases, even that boilerplate code is consolidated into the `STANDARD_ATMOS_CHOOSE_NODE` macro.
- Implemented `pipe_flags` which lets pipes declare (or override) certain requirements.
- Adds a "pipe_recipe" datum to help out things that construct pipes. By taking it out of the dispenser, we open the road for multiple dispenser types. No, no RPD yet. Soon.
- Enhances the pipe dispenser to operate on pipe recipe datums instead of hard coded lists of pipes it can construct. These datums are also (partially) initialized from the pipe machine types themselves, reducing having to define stuff in multiple places.
- Switched pipe dispenser UI to use browse(). Not a NanoUI, but makes it a bit prettier with low effort.
- Changed pipe dispenser to use a button selector to switch between Regular/Scrubbers/Supply instead of having separate list items.
- Added icon states to HE pipes to support the "connected on neither side" state.
It's mostly the same, just a little more efficient. I added a 'preferences' var to pass a datum and decide whether or not to play the sound for that client based on some preference.
* Added "Display Initialize() Log" admin debug command so you can see it mid-round.
* Ported the core of the overlays management subsystem from /tg
- Added SSoverlays subsystem for compiling overlay lists and applying them to atoms in a controlled anti-lag subsystem.
- Added vars and procs to atom which should eventually replace all direct interaction with BYOND's /atom/overlays var outside the subsystem.
- Added OVERLAY_QUEUED flag to var/atom/flags bitfield.
- Added small framework for subsystem performance tracking. So far used only by SSoverlays
- Added admin debug command "Display overlay Log" to see performance stats mid-round.
* Fix runtime on universal pipe adaptor update_icons
* Workaround for appearance_bro not initialized
Unfortuantely BYOND's initialization order is strange, and the appearance_bro var is only half initialized when map starts to load, causing errors. We temporarily fix by moving it to be a global-scoped global.
* Convert fire alarms to use add_overlay() A good first test.
* Convert turfs to use add_overlays(), eliminating the turf_overlay_holder!
- Converted as much as I could find about turf overlays to use add_overlay().
- This should be enough to stop BYOND from crashing, so we can eliminate the turf_overlay_holder hack.
- This also lets us remove the anti-corruption hacks from walls and open space.
- ZAS gas overlays can use priority overlays, so this also fixes the gas-goes-away-when-crowbarring-plating issue.
- Stuff like that
* Convert turf overlay interactions to use add_overlay.
Note: This is a plain and simple conversion of existing code to use SSoverlays. However I look at the line changed, and note that that line likely never fully worked as intended, as it has no way of re-applying itself.
I would make it use a priority overlay, but there is no code present for *removing* said overlay from neighbors when it is no longer required. That code should be implemented by original author.