This is a merged port from /tg/station and Virgo on logging standards.
The diary has been replaced with GLOB.world_game_log, diaryofmeanpeople
is gone (because it wasn't actually used) and a whole bunch of logging
procs have been changed to optimize Splunk.
This commit adds the Nightshift lighting mode from /tg/. From 19:00 to
07:00 in station time, the station will go into a reduced-lighting mode,
with dimmed lights across the station.
In conjunction with this, there is a new configuration option to start
the shift time at a random time other than 12:00, so that players are
more likely to experience a night shift (as opposed to having to have a
7 hour round).
This commit ports the StonedMC from /tg/station, intended to replace the
Process Scheduler from goon. Currently, they exist simultaneously, as
it's very difficult to port our 22 processes to the SMC all at once.
Instead, we can make them work together until everything is converted
over at a later point, and then take the old PS out back and put a
couple of rounds into it's deformed skull.
Primary benefits of this new process controller include: Other people
that can actually maintain it, unlike the PS, pre-world-init
initialization for subsystems, ease of ports from /tg/station13, and
potential performance improvement (to be seen).
This commit ports /tg/'s move refactor.
The throwing system has been replaced entirely, removing the necessity
of throw_at_fast and resolving multiple outstanding issues, such as
crossbows being unusable.
Spacedrifting has also been upgraded to function with the new throwing
system. It is now it's own process.
Tickcomp has been killed, and the config values have been adjusted to
more or less match live Paradise.
All mobs now share a common Bump() proc. There are only four mobtypes
which do not, including humans and simple animals. With the exception
of mob types that do not ever want to Bump() or be Bumped(), they should
call the parent proc.
Human movement slowdown has been moderately tweaked in how it stacks effects;
It shouldn't be significantly different from a player perspective.
Mobs will now spread fire if they bump into another mob. I don't want to set
the world on fiiiire, I just want start a flame in your heart~
For player facing changes: Input delay has been reduced by roughly ~50ms for
any direction keys, by advantage of a previously unknown flag on byond verbs
which allow them to operate independently from the tick rate of the server.
You may need to clear your interface.dmf file if you have a custom skin for
this change to function.
Includes a refactor for gun turrets (merged into portable turrets), hostile simple_animal behaviour, spells (sounds have been added) and poi_list items.
- 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