- Fix: Drones now get assigned_role = Drone.
- Tweak: AI is no longer considered a head job for playtime system
configuration purposes.
- Tweak: Job gating (when enabled - its off by default) is based on Crew
playtime now. This is for all jobs, including heads and AI. Gating based
on department playtime is still possible, but based on a separate config
option that's also turned off by default.
- Split EXP_TYPE_CREW into EXP_TYPE_LIVING (all living mobs) and
EXP_TYPE_CREW (actual crew positions). Job unlocks use EXP_TYPE_CREW.
General playtime reports use EXP_TYPE_LIVING. Playing corgi doesn't help
unlock jobs, but it does show in your stats.
- Added tracking for karma-locked jobs as a department in stats.
- Added quite a few safety checks.
- Split the per-client part of update_exp into update_exp_client
- Added new config option to let admins bypass the system, intended for
testing
- Moved defines to code\__DEFINES\preferences.dm
- Made use_exp_restrictions_heads_hours text2num'ed in configuration.dm,
rather than on use
- Converted all exp_types to #defines, instead of magic strings
- Moved exp_jobsmap to jobs.dm
- Replaced has_exp_for_job with job.available_in_playtime, which returns
- Changed <BR> -s to <LI>s, for proper HTML lists
- Made update_exp less indented, easier to read
- Fixed potential runtime in admin/topic.dm when calling exp window on a
non-existent mob
- Made job preferences screen tell you how long until you unlock each
locked job, in hours or minutes as appliccable
- Changed SQL storage format because mediumtext does not support default
''
- Converted exptimer() into a roundstart hook proc
Missed body tag
Typo fix
- Replaced 'EXP' with "Playtime' in most admin-visible locations. The
system is still invisible to normal players.
- Changed the types of exp you can accumulate from 'all', 'eng', 'sup',
etc to more human-friendly names like 'Crew', 'Engineering', and
'Supply'.
- Eliminated some copy-paste.
- Added a new configuration option: use_exp_restrictions_heads_hours.
When enabled and set to a >0 value, it overrides all head/ai job
playtime requirements, instead substituting that number of hours.
- New config option to set how many minutes is too early in a round to
abandon it
- Suicide-ghosting and cryo-ghosting now only make you non-respawnable
during the penalty period
- Manually entering a cryopod now despawns you 90% faster
- Joining as a drone now has a confirmation box
- Adds a configuration option for loadout points.
- Fixes the blue plaid skirt lacking its own unique type, causing
runtimes due to the mismatch between its display_name and
initial(display_name).
- Fixes the gear selection table using a fixed width.
- Fixes the restrictions column not consistently being added.
- Fixes the header and footer lacking the proper column span to account
for the restrictions column.
Currently, to_chat is literally just a proc that does user << message.
But it'll let us do output modification in the future, especially for
something like Goon's HTML chat.
Big thanks to PJB for his to_chat script, see
https://github.com/d3athrow/vgstation13/pull/6625 for more details.
This is seriously fucking annoying when testing local changes. Only a
config option instead of being removed completely because I am actually
going to go fucking insane without this being gone.
This commit changes every 'world.log <<' message with a loggable proc-
log_to_dd().
This is adjustable in the config; If LOG_WORLD_OUTPUT is present, all
things sent to world.log will show up in the standard /data/logs/ logs.
These logs will contain the following (in order):
Timestamp
"DD_OUTPUT:"
The message.
The config option for this, by default, is turned off.
This commit adds an overflow rerouting system customizable by modifying
the config. If the config values are set, after X amount of clients have
connected, the server will start rerouting all new players to the
configuration "overflow" server. Note that admins are immune to this, and
therefore will not be rerouted under any circumstance. Players that have
already connected and have a body will not be rerouted either, this will
only affect new players that get sent to the lobby.
It probably would also kick players if an admin sent them to the lobby,
but that's a very special case scenario.
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
This commit ports baystation12's implementation of starlight, modified to
rely on the master-controller due to differences between us, -tg-, and
bay12. Starlight allows space tiles to give off light, the amount of light
can be configured in config.txt.