If you tried to clean an atom with soap, and that atom was deleted
before you finished cleaning, the message attempting to display its name
would runtime.
Instead of the AI crew_monitor being a per-AI variable, it was shared by
all AIs, and recreated each time a new AI was created, as part of that
AI's contents. Bots create and delete a new AI every time they transmit,
which means the crew_monitor would be deleted the moment a bot spoke
over the radio, causing it to runtime.
It is now a per-AI variable.
Load order changes mean globals used in the initialization of intercoms
aren't created before the global_announcer intercom is created, which
causes its creation to runtime.
I have picked an effective but probably incredibly sloppy way to fix
this runtime, because I'm not actually sure where this initialization
code belongs
Holidays are now actual datums with procs and vars and everything.
Holidays run a proc called celebrate() when it's time to celebrate them.
Currently none of them do anything but that should change, wink wink.
Holidays can now run for more than a day. The important ones, april fools,
christmas, halloween, new years, and easter, all last at least a week.
The idea is so people can celebrate christmas in game without having to,
you know, actually play on fucking christmas. And also to put a time limit
on how long stuff like the annoying spookoween closet skeletons will stick
around so it doesn't overstay its welcome and become annoying as shit like
last year.
The event SS now allows more than 1 holiday to run at a time.
This matters for new years + christmas, easter + april fools, easter + 4/20,
and any holiday that can happen on friday the 13th.
The events get stored in a list that's only initialized if there's an active
holiday so testing for potential holidays is still pretty easy.
Added more easter dates so we won't have to add more until 2040.
The current batch run out in 2017.
:-------------PARACODE NOTES------------:
Tied to event process
Extra procs for holidays to be able to run special events alone
Admin manual-override functionality maintained and ported to new system
Instead of a snowflake check in adjacent.dm, doors now actually properly
use their nice open_layer and close_layer when opening and closing, thus
removing the need for a snowflake check to open firelocks that would
appear on the same layer as doors.
This commit fixes APC's being unbuildable due to a runtime error.
The runtime error was caused by checking for area.master, which no longer
exists after the lighting overhaul.
Signed-off-by: Tigercat2000 <nick.pilant2@gmail.com>
A port of https://github.com/d3athrow/vgstation13/pull/4377

Allows brooms to be wielded with 2-hands. Doing so places the broom
between your legs so you look like you are riding it.
You can also put a horsehead mask onto the broom to create a stick-horse
to ride. This can also be wielded, but will ALWAYS appear between your
legs.
And for the more magically inclined, wielding a broom or stick-horse (2
hands!) will cause you to ride it like a witch, giving you the ability
to bypass hazards such as tables and banana peels.
This commit fixes the fact that floodlights had literally 999 range to
them, illuminating more tiles than were actually on the map. They now have
14 range, and 20 brightness to maintain functionality similar to that
which they had before the lighting overhaul.