* ZAP!
* YOU DID NOT SEE THAT
* YOU DI NOT SEE THAT 2
* object orientated pr
* gdi
* protection
* object orientated pr v2
* REEEE
* blacklists
* Update magicarp.dm
tweak: The tesla engine no longer destroys energy ball generators.
/🆑
This brings back multi-tesla shenanigans from before the "tesla blows up things!!1!1" pull request.
* Makes qdeleted and qdestroying macros
* Makes QDELETED and QDESTROYING uppercase
* Swap qdel checks istype's for != null's
* Fix it
* How was this missed?
🆑 coiax
del: Tesla balls cannot dust people near grounding rods.
/🆑
- The tesla is SUPER deadly right now, anyway. If mildly charged, will
kill anyone unprotected. And people can STILL get dusted, even if
they've painstakingly set up a net of grounding rods.
- If you're hiding under only one, you're safe from the electricity and
dusting, but there are machines that explode all over the station. Only
a wide net provides any sort of cover.
- Basically, let's reward people for actually using grounding rods,
instead of getting RNG dusted if they don't cover in a locker for
however long it takes for Lady Tesla to leave.
* You can now buckle handcuffed people to singularity/tesla generator
* Adds buckling to tesla coil and grounding rod, minor fixes.
* Makes buckling code shorter
Destroy can cause the parent ball you're orbiting to also be destroyed,
which calls stop orbit on your ball, which then caused you to get
destroyed again, this fixes that while still guarding against the case
the original !loc qdel code was added for - see pr #15486
* Replaces a bunch of istypes with their proper macros
* i'm not sure doing a 100+ file changed pr on a whim is something you do when bored
especially if you do it by hand because you never actually learned the regex that would let you automate it
* i'm just... gonna do this, because that check was true a lot and it shouldn't matter
Adds a large ash and large molten item decal (for future use)
simplifies decal/cleanable/replace_decal() code a bit.
Changes construction() proc to on_construction() for consistency, same for deconstruction().
Made a deconstruct() proc for machinery and computer (also for future use).
* Sleepless perfect orbits #MOGA
We bind to Moved() and use datums and lists to track the orbits, no more sleeps, no more delay.
* Adds some null checks to orbit checks
* Forget to set orbiting.
Also sets orbiters before orbiting, to avoid edge cases of deleting a list then recreating it.
* Improves orbit, adds subsystem for orbits.
Most orbit loc changes will happen on move, subsystem runs every 2 ticks to make up for when that isn't the case.
Teslium is now easier to make, and as with most electronics, no longer mixes with water.
tesla_act and tesla_zap both now have arguments to specify whether they explode machinery. By default only the tesla engine will explode machinery. This means that Tesla Revolvers will no longer cause a large area to implode if there is no one nearby the target of it to shock. This also means that tesla-grill bolts will no longer blow things up.
- makes tesla bomb immune so it wont destroy itself
- makes lights spew fire when they explode instead of the regular explosion
- makes cameras with EMP immunity also have tesla immunity
tesla can now keep itself fully contained (at least on box)
Dissipate nerfed, only dissipates every 5 process() ticks (but takes off double)
Required growing energy's exponential growth dropped from 50% of current energy to 25% of current energy.
When shooting out shorter ranged zaps from the orbiting balls, it nerfs their power proportionally.
Grounding rods are seen as being 2 tiles closer than they are to increase their likelihood of being chosen.
These are the files with just tiny tweaks. Mostly modify an object's attackby so it does "return ..()" instead of "..()".
If there are other things in this commit, the PR's description will explain them.