I'm going on vacation soon so I thought I might as well bring this game mode back up to at least a minimally functional state before I go.
A lot of features (Gang membership visibility, conversion pens, weapons, deconversion methods) have been stripped out for now. I gave gang bosses uplinks in the meantime.
It's basically rev vs rev right now, but the victory conditions with the recallers are still there. I'll work on adding more stuff after I return from my vacation.
Panic bunker! Uses the power of the database to reject new ckeys that have never connected to the server(s) before.
Admins are exempt, even while deadmin'ed, but they are also unlikely to be new ckeys except in rare cases that involve vv fuckary.
New player notification is now configurable.
Adds a optional default disabled irc notification of a players first time connecting.
EXTENDED
TRAITOR
CHANGELING
DOUBLE AGENTS
TRAITORLING
based on the game probabilities set through the config.
The round will not convert if more than 30% of the players are dead (round immediatly ends) or if the shuttle is beyond the point of no return (the round ends normally).
Adds the CONTINIOUS_ROUND_BLOB config
There are three "levels" of popcaps, and you can use them in any assortment you like:
The "soft" cap produces a message on join, and takes no action.
The "hard" cap disallows joining whilst too many other people are alive and playing in game, but allows observing.
The "extreme" cap prevents people from joining the server at all while the cap is exceeded. It won't kick out people who failed to qualify during roundstart, but if they leave they won't be able to get back in.
In each case a customizable message config option has been given. Admins are also immune to most population caps (they still are hit by the ones in job shuffling, but can late join as normal afterwards)
- Added a new config option MINIMAL_ACCESS_THRESHOLD that can be used to automatically give players more access during low-pop rounds.
- If the number of players is below this threshold, expanded access will be used and security and assistants will have maintenance access.
- If the number of players exceeds the threshold, minimal access will be used and security and assistants will not have maintenance access.
- Setting the threshold to 0 will disable this function, and server ops can set the state of round-start access manually
Misc:
+Fixes unreported issue with initializing lighting on a specific zlevel
+Fixes two similar issues with moveElement and moveRange. Where fromIndex or toIndex could be adjusted incorrectly in certain conditions. Potentially causing bad-sorts, or out of bound errors.
+Rewrites listclearnulls(list/L) to no longer iterate through L.len elements for every null in the list (plus 1). i.e. went from L.len*(number_of_nulls+1) list-element reads (best-case), to L.len list-element reads (worst-case)
+New proc/getElementByVar(list/L, varname, value) which finds the first datum in a list, with a variable named varname, which equals value. You can also feed it atoms instead of lists due to the way the in operator functions.
+Fixes an unreported issue with Yota's list2text rewrite. Under certain conditions, the first element would not be converted into a string. Causing type-mismatch runtimes.
+New global map_ready variable. This is not fully implemented yet, but will be used to avoid duplicate calls to initialize() for map objects.
+All turfs now maintain references to all lights currently illuminating them. This will mean higher memory use unfortunately, due to the huge number of turfs. However, it will speed up updateAffectingLights significantly. I've used list husbandry to reduce baseline memory usage, so it shouldn't be any worse than some past atmos modifications memory-wise.
-Removed 'quadratic lighting', can add this back at some point. Sorry.
+modified the way lum() works slightly, to allow turfs to have overridden delta-lumen. i.e. space cannot be illuminated more than its default ambiance. This allowed removal of some iffy special-snowflake lighting areas implemented by somebody else.
+Lighting images in the dmi can now use arbitrary naming schemes. It is reliant on order now. This allows the dmi to be replaced by simply dropping in a new dmi.
-Removed all subtypes of /area/shuttle. Shuttles now create duplicate 'rooms' of /area/shuttle. (More on this later). This will conflict with most maps. Guide on how to fix to follow.
+All verbs/tools relating to world.tick_lag were refactored to use world.fps. However old config text for setting tick_lag will still work (it converts the value to fps for you)
+MC stats improved using smoothing. They now have their own tab so they dont get in the way when you're playing as an admin.
-removed the push_mob_back stuff due to conflicting changes. Sorry Giacom.
_OK, NOW THE ACTUAL INTERESTING STUFF_
Following systems moved over to subsystem datums:
air_master
garbage_manager
lighting_controller
process_mobs (aka Life())
nanomanager
power
sun
pipenets
AFK kick loops
shuttle_controller (aka emergency shuttle/pods), supply_shuttle and other shuttles
voting
bots
radio
diseases
events
jobs
objects
ticker
Subsystems hooks and variables should be commented fairly in-depth. If anything isn't particularly clear, please make an issue.
Many system-specific global variables have been refactored into
All tickers which previously used world.timeofday now use world.time
some subsystems can iterate before round start. this resolves the issue with votes not working pregame
This lets players see the admin notes that have been added to their
ckey, by using a verb in the OOC tab.
This is a config option and is off by default.
aka formalizing Human Supremacy
- Adds a config option ENFORCE_HUMAN_AUTHORITY which prevents lizard players from joining Command and Security roles
[Lizard subjugation intensifies]
Intended for high-population servers
Open security officer positions scale with population, between 5 slots at ~40 players to 12 slots at ~96 players
Default coefficient is 8, but may be modified (or disabled) in the config.
Extra lockers will spawn if there aren't enough lockers.
Thanks @Giacom for the info!
PR announcer is now able to authenticate with Nickserv.
Communications key moved out of config controller.
Even better Regex validation.
Reading now has even more exception handling.
You can open the communication console UI by using your ID card.
Added a config option for the shuttle refuel delay, defaults to 20 minutes.
Fixed a bug where the refuel delay was counting the pre-game lobby time.