Only applies to non-ghost, non-camera mob movement. Scales automatically to any fps and any move delay.
Also took this oppurtunity to remove tickcomp because it was USELESS and shit.
All the rounding is because of floating point imprecision. round(2.7, 0.9) != 2.7, for example. 2.7 + world.time would wind up being < than world.time 3 ticks later even though they should be equal.
- Uncommented all stuff that was commented in the last commit.
- Added a check in front of it that blocks them from showing up in the setup window if JOIN_WITH_MUTANT_HUMANS is not set.
- Included new game_options.txt as an example.
The tgstation server has never used the example game_options.txt so the new config option will not be enabled on it. Even if it did, the option starts commented out in the file.
Dominator sets Delta Alert now
Delta Alert text changed to accommodate this change (+3 squashed commit)
Squashed commit:
[3129c95] Icon state update
[21bddf3] Dominators play the malf sound when activated (until I can find a better alternative).
[2289074] Unfucks changelog (+1 squashed commits)
Squashed commits:
[2289074] Unfucks changelog
Makes another set of config options for which rounds types, if any, use the midround antagonist (mulligan) system. Keep in mind this is by definition a subset of round with continuous set. Again this feature is only present for the roundtypes where I KNOW it works properly, other modes can't use midround antags.
The check antagonist screen will show how the game will behave when all the antagonists die, and it can be changed on the fly by admins, the four possible states are:
End on antagonist death (noncontinuous rounds)
Continue if antagonists die (unsupported continuous by default round)
Continue if antagonists die, creating replacement antagonists (continuous, using midround antags)
Continue if antagonists die, not creating new antagonists (continuous, not using midround antags)
When rounds prepare to mulligan admins will additionally get the option to just keep the round going without any automatically created antags in case they want to run their own shinanagans instead. They can also as before choose to end the round.
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.