- Fixes pirate gun not getting 12g caliber correctly.
- Fixes .357 caliber not being named consistently with everything else.
(Do not merge this until
https://github.com/PolarisSS13/Polaris/pull/3533 is merged pls, unless
Yosh fixes his caliber to be correct also.)
- Changes .50AE ammo to .44 because that's more consistent with what the
gun is capable of in-game, because it uses the same damage values as the
.357 and not a bullet that shoots through through your fridge, through
your house, and hits your neighbor's home invader like a .50AE is IRL.
The fact that it's .44 makes much more sense. This is purely a fluff
change because it annoyed me.
- Fixes a bunch of ammo.dmi icon names and makes the file not a jumbled
fucking mess. This means now your 762 mags and the newly renamed 44 mags
will not be broken anymore.
Gives the research borg module the rapid part exchange device so it can
easily upgrade machines without having to take it apart and slowly put
the pieces back in (with some of these machines being bugged and unable
to be deconstructed like the circuit imprinter).
* Okay evidently walk_to(A, B) doesn't stop when A reaches B, but keeps running in the background forever until it is manually canceled! Therefore in order to be garbage collected, we must cancel walking on any object that might have initiated it.
* Fixes this on chemsmoke and spiders.
* The same story applies to walk_towards; fixed for dust, meteors and immovablerod, and also to walk_away; fixed for flashbangs.
* Also fixed chemsmoke actually getting qdeled at the right time.
In addition to fixing the problem, it makes sense. The observer pattern is overkill for an object type we own; doing it directly in Destroy() is more efficient.
I like the ones I wrote, but these are proooobably better.
They have normal units, which are worn on the back and you can grab the paddles out of to shock people.
Then there's compact units, which are worn as a belt, and serve the same purpose.
And finally there's the combat units, which allow revives through spacesuits, and have no safety so you can zap living people on harm intent (good for antags? CMO?).
These appropriately check for blood, a heart, etc. So, in that way, they're a bit more realisic than my original ones which I was sorta lazy in writing.
Emagging them turns off the safeties, allowing them to zap people who are still alive.
I actually cleaned up their sprite choice code a little and added a sprite for the 'combat' one since previously it was just the emagged sprite (flashing exclamation point). Now it's just got a red heart monitor, and the emagged ones keeps the exclamation.
Did make one balance change in that compact ones use twice the power (inefficient small capacitors? or something?).
* Fixes Baystation12/Baystation12/issues/17443 - Runtime in radiation.dm,30: illegal: sqrt(-2.857143)
* Updating radiation power to below zero should simply delete the source.
* Fixes at least one cause of Runtime in radiation.dm,41: Cannot read null.z in an effort to fix Baystation12/Baystation12/issues/17411
Shuttles now set themselves up upon being instantiated instead of relying on a monolithic proc in the shuttle controller.
Shuttles can now be defined more cleanly on a per-map basis, as well.
Accidentally fixes a broken admin shuttle.
* Hooks up informing Master the gameticker actually starts and stops the round subsystems will actually fire! What ho!
* We should convert the gameticker as an MC subsystem someday, and probably completely rewrite it while we are at it becuase it is crazy. But this should bridge the gap until then.
* The vast majority of gas mixtures never use their `graphic` list. Prime candidate for making a lazy init list.
* While we are here, add nullchecks to ZAS's use of the graphic list a bit. /turf/update_graphics was technically already null safe, but its even better to not bother calling it at all right?
* Initializing a list in the type definition (of any type) incurs a hidden proc call ("init"). Simply by moving the init of the lists to /New() we speed up creation of /datum/gas_mixtures (which happens *often*)
* The list variables still get initialized by the time the instance is created, so this has zero impact on other code, its just starightup faster with no downsides.
Fixes a line printed about staying close to your patient printed in error, and makes syringes work on laying patients again.
The do_surgery overrides are from a bygone era.
Tested == yes
* For various reasons its best to not instantiate lists until they are actually going to be used, especially if there is a good chance that a given list variable might *never* be used during the lifetime of an object.
* These macros make it simple and concise to add remove and access entries in lazily created lists.