Removes a very large amount of world loops.
Adds a macro to painlessly generate a global list, and the needed code to modify the list when an object is made or deleted automatically.
Cleans up some commented out code.
* Updates one arcade machine emag message to to_chat, adds another.
* Returns 1 in emag_act for orion trail.
* Converts a bunch of stuff to macros. Should probably not break anything.
* Fixes an improper macro usage.
* Attempts to fix all 20 errors.
* Adds: flamenco dress, bustle dress, cowboy duster, sheriff badge, tiny cowboy hat. To be added: 2 pairs of cowboy boots, stick horse.
* Adds 2 cowboy boots and a stick horse. yeehaw.
* Attempting to squash conflict that was caused by one of my OWN prs. For shame.
* attempting to fix conflict ft. anewbe
* Bouquets
* Fake Bouquets. Can be won from arcade machines.
* Heart box chocolates containing a set arrangement of chocolates.
* Adds said chocolates (milk chocolate, white chocolate, and truffles) all bite-sized.
* Adds 5 cards, one blank and four with covers. Function identical to paper except you can't make an airplane because I hate fun.
* Adds The four cards with covers, 3 real bouquets, and 2 chocolate boxes to cargo under a 'gift crate' for 10 points.
Sprites by me. Code would not be possible without cerebul's help. Let me know if I've goofed on something, but I did test all of the items + ordering them from cargo.
* Yes, all of them.
* Also did a few corrections to redundant New() and broken Destroy() along the way
* Renamed the turf_initializer.initialize() proc to InitializeTurf to avoid confusion.
* Subsumed /area/proc/initialize into /atom/proc/initialize() - Made /area's LateInitialize to get same behavior as before.
* Yes, all of them.
* Also did a few corrections to redundant New() and broken Destroy() along the way
* Renamed the turf_initializer.initialize() proc to InitializeTurf to avoid confusion.
* Subsumed /area/proc/initialize into /atom/proc/initialize() - Made /area's LateInitialize to get same behavior as before.
* Allows Prometheans to be cloned from their Core.
* Swap brain cloning dependency from the cloner to the brain itself.
* Fffffff Changelog. And to_chat.
Added a new option to the cargo console to view supply points gained
from the most recent shuttle trip.
It breaks down the value per crate, but to preserve the fun of trial and
error for folks that enjoy that doesn't itemize exactly what inside the
crate provided that value.
Part of the supply shuttle changes could probably be instead done as a
sell_crate hook, but because of where that's called it would have to
duplicate all the manifest-detection code.
Brains now retain languages from the mob they were removed from, rather than forgetting them. Languages are also retained when a brain is transplanted into a new body.
AIs, as well as cyborgs/robots/drones, will load languages from your currently-active preferences when they spawn (just like humanoid mobs do). Brains removed from cyborgs/robots/drones will retain their original languages regardless of the current module.
Brains in MMIs can now speak EAL if they know it, and additionally fixes#2832 - sign language will no longer be usable when lacking both hands. Also fixes silicons being told the wrong language prefix by the known languages window, as it was still showing ':', leading to much confusion among new borg players.
Known issues:
AIs who can use sign language can use it even without a holopad - I'm not sure how to have it check for that. This could be seen as a non-issue, as signs could conceivably be displayed on the AI's screen.
AIs signing over holopad will also have the language verbs overridden by the synth speech verbs (states/queries/declares). I'm pretty sure this has something to do with the already-existing bug that all languages can be understood by everyone when an AI speaks them over holopad.