#8005 just revived.
Tasks to acomplish while here:
Fix merge conflicts
Add ntIRC direct messaging
Things I migth consider adding in future PR:
Porting IRC to VueUI
Porting File Manager to VueUI.
The lifeless live again. Or in this case, what never actually lived here.
Ports Baystation12/Baystation12#17460 probably for real this time. What this allows us to do is create shuttles on runtime and make shuttles easier by just making landmarks and a shuttle instead of areas and shuttles. Also allows runtime landmark creation via flares or whatever AND allows shuttles to use different landmarks at will.
I removed most of the overmap stuff, I think. It shouldn't be hard to slam it in whenever we need to.
Changes:
"Shuttle code has been completely reworked."
"Shuttles can now be modified to have more than one destination."
"Shuttles now have a takeoff sound."
"You can now throw mobs against walls to damage them. A lot."
"You now need a neckgrab to throw mobs."
"BEING UNBUCKLED DURING SHUTTLE LAUNCH IS DANGEROUS! Don't do it."
"Adminghosts can now interact with all shuttles."
* Ports a psionic system from Bay.
* Rip out this shitcode.
* shitcoden't
* fixes
* it should work fully now
* Admin fixes
* Remove todos
* remove todos part 2
* Removes psi-armour. We don't need this for now.
* Skrell are now operants. Tweaks coercion.
* Adds thralls.
* Temp removal of psiarmour. Fixes psigrabs.
* Thrall assay.
* fixes
* More fixes
* unused define cleanup
* Log and powers
* Skrell powers are done.
* Update code/modules/psionics/events/mini_spasm.dm
Co-Authored-By: Geeves <ggrobler447@gmail.com>
* Update code/modules/psionics/events/mini_spasm.dm
Co-Authored-By: Geeves <ggrobler447@gmail.com>
* Update code/modules/psionics/equipment/cerebro_enhancers.dm
* did this work???
* jargon
* arrow's fixes
Co-authored-by: Geeves <ggrobler447@gmail.com>
Ports a buuuuunch of circuits from Polaris.
Allows metabolic siphons and internal energy siphons to consume power to feed their host.
Ports /tg/ circuits too while I'm at it.
Increases base size and complexity for circuits. You're all adults. Hopefully. Don't abuse it.
Ports the integrated circuit detailer.
This PR is depending on #4868 for it's ui framework. This PR mostly makes new SSrecords subsystem responsible for storing records. This should replace old datacore.
Make new SSrecords.
Make things use SSrecords and whole code compile
Made VueUi button <vui-button> to push parameters as JSON, preserving client side data stricture.
Add new records console and admin record management.
I am mostly looking for feedback regarding SSrecords and it's data storage mechanism criticism (It's using lists for storage)
This PR will lead us towards the Promised Day, for in its wake there shall be much celebration and ecstasy as this world becomes a world suitable for developer hegemony. The first strike is thusly;
All << is converted into to_chat().
This UI is going to be more integrated with BYOND host objects. It's update principal is very different from nanoui's. It is based around state that is being synchronized with server and client (browser). Such synchronization has it's problems, like it can't handle rapid changes, what could cause client and server to become out of sync and client state to be discard.
Projectile hitscan effects moved to /effects/projectiles folder.
Most of projectile firing code and some of impact code refactored, and projectile hitscan effects refactored with ported TGcode (which is mostly TGcode I wrote anyways 😎)
Projectiles can now be fired at any angle, instead of just at the center of turfs!
Projectiles are now [in theory] 100% accurate down to 0.001 of a pixel.
changes:
Maps are no longer compiled in, instead loaded directly from the DMMs at runtime.
Z level defines have been moved from the config to map datums.
Unit tests now use typecaches.
DMMS now actually works.
DMMS has been updated slightly.
DMMS is now capable of loading simple lists of non-text types.
DMMS is now faster when loading many types without mapped in attributes and when loading area instances.
Asteroid generation is now defined on the map datum instead of being hard-coded in SSasteroid.
Holodeck presets are now defined on the map datum.
Atmos machinery now uses Initialize().
Ports Polaris' integrated electronics system, whichallows for Roboticists & Electricians/Engineers to build custom devices and machines for a variety of purposes.
changes:
SSoverlays only creates the our_overlays and priority_overlays lists separately and when they're actually used. This should remove a lot of unused lists as priority_overlays is relatively unused.
SSoverlays is now FIFO.
SSoverlays now uses large Cut() operations instead of continuously truncating its processing list.
SSoverlays is no longer a processing subsystem.
Performance tweaks to add_overlay()
SSoverlays no longer tries to re-process atoms that have already forcibly compiled their overlays (like human-types).
This pr adds the second essential part of the merchant's implementation, mapping the merchant's shuttle, base and the dock. And more merchant related fixes and tweaks.
Removes a whole bunch of in world loops.
Reworks SSmachinery to hold two lists: all_machines and processing_machines. all_machines contains all machines 5ever. All of them. Literally. Forever. And ever. processing_machines only contains machines that process with the SSmachinery controller.
I checked most types at runtime on the live server to see whether they're in processing_machines or in all_machines, and did debug to ensure that most machinery ends up and stays in all_machines.
Includes a basic UT to make sure all mapped in machinery types remain within the all_machines list post-init.
changes:
Replaces a lot of in-world loops with more specific lists.
Recipes are now copied in SSmachinery/Recover()
Fixed bad sorting on all_areas list.
Added skeleton Destroy() to SMESes as they did not have one and are failing to GC.
Seems to shorten SSatoms init a bit, maybe from removal of in-world in MULEs?
changes:
Clipboard overlays are now a little gentler on SSoverlays.
Ported potential performance improvements for getFlatIcon and listclearnulls from /tg/.
Icon smoothing now clears the base icon by default; SMOOTH_NO_CLEAR_ICON disables this behavior.
Potential SSoverlays performance improvement from /tg/.
Speculative fix for #2826.
Adds a dock at arrivals for the mercenary shuttle to dock, also places the admin shuttle to a dock in the bridge.
Also, fixes the belt at robotics at last and adds a hull shield to engineering. And adds a hacked candy vending to the wizard base and ninja spawn, together with a suit cooling unit for ipc ninjas.
Adds a SOFTREF macro because it's an actual PITA to write out. Refactors all applicable usecases of it to use it. I've left out some NanoUI stuff because you know my preference at being explicit when needed.
changes:
- NanoUIs and objects are now cleaned out of open_uis when their UIs are closed instead of leaving their entries in the list forever.
- Cleaned up a bunch of open_uis code.
- Common NanoUI files (css, js) are now loaded into the rsc instead of loaded at runtime.
NanoUI no longer sends coder resources that the client doesn't actually need.
Fixes#2499Fixes#2495Fixes#2493Fixes#2480Fixes#2487Fixes#2491Fixes#2492
Gives the head of security Lieutenant Columbo, an attack dog with a special sprite that deals slightly less damage compared to other attack dogs.
Replaces Poly with floor B.O.B.
Gives Lamarr's cage a little more breathing room.
Merges the NanoUI subsystem with Nanomanager, as well as cleans up some nanomanager code.
Most of the files in this commit are changed as a result of removing the nanomanager global in favor of the SSnanoui global.
changes:
Airlocks no longer tick (exceptions: firedoors, uranium airlocks)
Airlock commands run before round-start are queued to run at round-start.
Airlock commands that failed to run are scheduled to try again in 2 seconds with timers.
Callbacks can now be registered with SSticker to run at round-start in a non-blocking way.
Added a new subsystem (SSpower) for handling power-related functions. Currently doesn't do a whole lot, but this will likely eventually change.
RCON functionality has been moved from SSmachinery to SSpower.
The global cable list has been moved into SSpower.
Powernet sensors no longer process purely to keep themselves in the global machines list, instead they are added to a list in SSpower.
Power terminals no longer pointlessly tick.
Removed some variables from SSticker that weren't used by anything.
Holographic overlays such as those used by consoles are now cached.
Xenoarcheology setup is now tick-checked.
ZAS now uses post-fire timing.
The req_access and req_one_access lists are no longer initialized by default on all /obj types.
Openturfs will only emit starlight if they are bordering a non-openturf dynamically lit turf.
Powernets are now stored in SSpower instead of being a global.
The global mouse list is now stored in SSmob instead of being a global.
Fixed some weirdness in APCs' Destroy() caused by a merge.
SSwireless now pre-bakes to reduce round-start processing.
SSwireless no longer uses processing queues.