Things this does:
Refactors _app_preset_name to use a type name instead. This makes it validate the presets at compile time, making it much more secure.
Removes all records computers from the code, along with the CMC.
Replaces all records computers with appropriate modular computers
Each head of staff now has 1 departmental computer, 1 head-specific computer, 1 head laptop
Removes the C&C program from the heads that had it, because you're supposed to use the bridge for it.
Fixes a disconnected vent in xenoarch, fixes the anomaly scanner in the pit scanning a window, adds a bookcase to make up for the empty space created. Fixed a protection check to recognise nitrile gloves now that we use them instead of latex.
The armour and armor again strikes:
Apparently original Mech port PR has overridden borg's armor definition and was using it. This fixes it by making mech's armor a child of borg's armor instead.
renames borg's armour to armor references.
Mech's melee damage has been increased. It depends on manipulator type. Light: 15, Regular: 20, Combat 30, Heavy: 50. Fixes#7665
Adds missed check in mech's destroy proc
This changes a number in the artifact effect code that removes the potential for an artifact to have the low level energy emissions or concentrated energy effect, both of which do nothing.
Spent lots of time and lots of changes to fix issues:
bugfix: "Mechs no longer runtime during destroy call."
bugfix: "Turrets and NPCS no longer target empty mechs."
bugfix: "Mechs no longer runtime during armor check. Mechs now use their armor and values for it. Before it would ignore them entirely and deal 100% damage."
Added ismech() define and also QDEL_NULL_LIST() define from TG. Matt's suggestion
renamed any armour references in mech code to armor to keep it consistent
rscadd: "Adds the ability to remove appendix and other organs in character setup."
rscadd: "Adds two kidneys! Splits the work up between the two organs."
Also adds the ability for a mechanical liver and kidneys,appendix
Part 1 in the "why my impact wrench no wrench bolt" saga
tl;dr for end users: combitools / impact wrenches now work on everything their non-powered versions do (except mechs and RIGs, tune in next time on dragon ball Z for that)
essentially all this PR does is murder every istype() check possible that could use a helper function instead, most notably many pen checks with ispen(). it also repaths combitools and powerdrills to /obj/item/weapon so they aren't instantly taken out of contention by half of the known attackby() prompts
I already squashed a couple runtimes here and there from the pen changes and it's possible I missed another because pencode is another scourge upon our lives
Resolves#7172. Resolves#7190.
Cooking appliances are no longer esoteric technology beyond the control of NT's finest researchers.
Adds microwave, oven, deep fryer, cereal maker, and candy maker circuit boards for research and construction.
Constructing, upgrading, and deconstructing microwaves and other cooking appliances is now possible. (Note, as of yet upgrading microwaves has no purpose. Will be fixed ASAP along w/ microwave overhaul)
Oven efficiency now starts at 70% once pre-heated, to alleviate the incredibly slow cooking times at round-start.
Oven heat loss from the door being open cut down to 1.5x from 4x.
Deconstructing a machine now returns cable coil.
Wirecutting a blueprint on the cable-coil stage lowers it to the 'secured blueprint' stage, requiring a wrench to disassemble instead of wirecutters again.
Printing a smart-fridge board no longer gives you an operating table circuit board.
Deconstructing a machine no longer displays the incorrect icon state (box instead of blueprint).
Candy and cereal makers work again. (woops)
How to build machine blueprints!
Use steel sheets like normal, then rotate the frame how you like it using the directional arrow. From here use a Multitool to finalize it and then wire it up like you would before.
Made it so items get their pixel x/y reset on pickup.
Thrown items now also get their pixel placement slightly randomized.
Tweaked the center of mass on a boatload of items to be more accurate to their sprite art.
Replaced a bunch of randomized pixel placement code into a unifying proc; randpixel_xy() that uses an item's randpixel var.
The evil will finally be defeated.
This takes security borgs out of the game entirely. They bring pretty much nothing to the table, in terms of either roleplay or positive influence to the station.
Also, combat and syndicate modules now have cuffs.
Modifies the Handheld Health Analyzer's readouts a little.
Firstly, it displays if someone is malnourished or dehydrated.
Secondly, it changes the numerical damage values you get if you scan someone into words, this prevents doctors from screaming "OH YOU HAVE 0.3 TOXINS", which doesn't really make sense in any term of lore standards. I guess. Lmao.
Thirdly, it removes the weird "Anatomical damage detected" lines, because those are literally just repeats of the damage values you're already getting.
Refactors objects.dmi and items.dmi
Adds some more uses to glass jar - now you can use it as a tip jar AND a reagent container!
you can also see reagents inside like a beaker
also improves sprites for wrapping paper and the pocketwatch
This basically makes it easier for future sprite improvements
Replaced the hivebot sprites (Thanks to Kyres1) as suggested in this thread. https://forums.aurorastation.org/topic/11610-hivebotspace-bear-resprite/
Hivebot beacons now spawn in as one of three different variants, their only difference right now is the type of defensive weaponry they use. (Rapid firing taser, Radioactive/toxic beam or an incendiary beam)
Hivebot beacons keep track of their spawned bots, halting further spawns if the number of existing bots becomes that of the max allowed.
Added a red variant of the hivebot sprite, to easily differentiate between the melee and ranged variants
Hivebots are now affected by emps.
The timer now works properly, the hivebots will all not spawn at once.
New: Added a snoozing var, that if set to 1 will not allow the beacon to spawn bots until it has spotted an enemy. Will possibly be used in future mapping stuff related to dungeons and the like.
The balancing is something I'm torn on and will likely tinker with further in the future, pending feedback.