* Dynamic map loading prototype
* Get the title screen working
* Fixes the random pod bugs
* map configs
* Add back the asteroid
* Ignore the rotate file
* Fix some shit
* More shit fixes
* Babby's first json
* Cyberboss confirmed shitcoder
* Makes map rotation great again
* Moves the map defines
* Delete tgstation2.dm
* Convert runtimestation
* Convert PubbyStation
* Convert OmegaStation
* Convert Metastation
* Convert Delta Station
* Lol file extensions
* Reee line endings
* Take out the trash
* Fix loadallmaps.dm
* Deltaassssssstation?
* Fix travis
* Did I ASK you to change the line endings?
* Remove votable maps
* Cleanup
* Previous config. Load configs in New. Fix splash
* Fix this
* More generic minetype
* STOP TOUCHING THE LINE ENDINGS!!!
* Add some flexibility to /obj/screen/splash
* Fix the shit
* Update gitignore
* Smooth transition from last map
* Better check
* Missed this map rotate check
* Remove these checks too
* Prep for a future request by @kevinz000
* Fix z2 line endings
* Solution for custom .dms
* Rename some things, trim some fat
* Fixes default map_config
* Remove stale comment
* Delete the previous config after loading
* Don't try to open a non-existent file
* Delete the old rotator script
* And references to it
* Line endings
* More line endings
* Del checks from when m-config may have not existed
* LINE ENDINGS
* Update the default map config
* Map load error checking for what it's worth
* Small cleanup
* For case sensitive
* File systems
* Strip maprotate stuff from build script
* Spruce up the _maps tree. Compile some empty space
* Make travis simpler
* LINEARU ENDARU!!!
* tgstation TWO!!!
* Lowercase mine type
* Dummy dm's for testmerging
* Fixes job ordering
* If ghosts wanna watch the map load so be it
* Let them know what's going on
* Fixes z-transitions
* Optimize z expansion further
* Remove this old var
* Fix wiznerd teleportation
* Rmove butt
* Does the thing
* Moved temp configs to the data dir
* Un-touch gitignore
* Forgot templates.dm
* Forgot to include the includer
* Fair enough
* SILENCE IMBECILE!
* @Cyberboss still a fuckboi
* Speed things up a bit
* Fix a potential bug with the error message
* Whatever
* Add github repo id to config
* Makes sure testmerge has no nulls
* Enables downloading of PR details to revdata
* Add PR details to testmerge messages
* Fix some things
* user -> org
* Quotes
* FUCKING BYOND
* Something that sorta works
* Sanitization
* Thats the field I wanted.
* Less >
* Further sanitization
* The copypasta was real
* Remove duplicate PR lines
* Once more into the breach lads
* Fix the shit
* REEEE
* Extra error checks
* Remove dupe command logging
* Fix another line break
* Logging and shitfixes
* Revert "Remove dupe command logging"
This reverts commit 8d74d098aa74310626b9cc27c56bc163421b12ac.
* Use wget instead?
* Refactor into proc
* Security
* More security
* I can't spell
* UNIX memes
* Ports paradise error handler, with in game runtime viewer!
* Changes to the old runtime error and removes inerror reference
* Oops
* Adds a wrapper for world.log so it displays both in the runtime diary and in DD window
* Adds a topic limiter.
This appiles to all non-admins, the rate is configurable but defaults to 10 in any second and 100 in any minute.
Hitting the minute limit causes a notification to go to admins (once per minute)
The user is always notifed when a topic is ignored so they know whats going on. If they trigger a notification to admins they are told about this as well.
* This makes more sense
* Adds the twitterize proc, which takes a list of strings and turns it into a plaintext newline seperated list of 140 or less quips.
* makes the nonfunctional code less nonfunctional, but still not completely functional
* Almost functional!
* We've reached theoretical functionality!
* Adds "weighted random" AI law config
- Streamlines some duplicated code for law config stuff
- Makes a new "weighted random" option for AI laws, where an AI has a
random lawset, but some lawsets are more common than others.
80% normal, 20% quirky.
For those unwilling to source dive, here are the weights:
- 32% Asimov
- 12% Asimov++
- 12% Corporate
- 12% Robocop
- 12% Paladin
- 4% Maintain
- 4% Reporter
- 3% Hippocratic
- 3% Live and Let Live
- 3% Peacekeeper
- 3% Drone
* Law weights are now in the config file
* Adds a whitelist, stripping out some dead code in the process
Old job whitelist that wasn't used has been removed.
Config has been repurposed, uncomment USEWHITELIST, only ckey's in
admins.txt or whitelist.txt in the config will be allowed to connect to
the server
* More examples
* Add a guy
* Update whitelist.txt
* Put him in
If minimap generation is disabled, the system will now first try to load the map from its cache, and failing that, try to load it from backup minimap files
Also adds a config for space ruin budgets
When a user's cid doesn't match their last cid, we just close the connection, faking a read error. If it's still mismatched when they reconnect, we reject the connection and let them know we are on to them.
Basically, they key difference between StonedMC and CarnMC is that when multiple ticks want to run at the same byond tick, we divvy up the tick between the subsystems, rather then allow one subsystem to hog it all.
The key difference between StonedMC and GoonPS is that we allow the subsystems to tell us how to divvy up the tick using flags and priority.
The new SS_ flags allows us to select behaviors that used to be piggybacked as side effects of dynamic wait or default but sometimes unneeded behavior.
Dynamic wait is 100% gone, lower priority and SS_BACKGROUND are better more refined ways of doing this when combined with MC_TICK_CHECK
I have by design never looked at the inners of goonPS, so this is all original code but I know it uses two loops because of comments by goon devs on reddit threads, that design didn't make sense before, but when I can tell a SS how much of a byond tick it is allowed to have, knowing how many need to run this tick is helpful I also know a bit more about how it works from piecing together comments in #vgstation.
Detailed list of changes:
Subsystems now have flags, allowing fine grain control over things like rather or not it processes, inits, rather it's wait is how long between runs (post run timing) or how long between starts, and rather or not late fires should cause the next fire to be earlier.
Mc now has two loops One loop handles queuing shit, one loop handles running shit.
MC now splits up tick allotment rather than first come first serve Subsystems can even request a bigger share using higher priorities. (It will even resume subsystems it paused if other subsystems hadn't used as much as it predicted they might need)
Default fps is now 20 This is related enough to the MC and it's a change that's really long since over due
All code oddities are most likely to be necessities to lower overhead on the mc since it runs every tick
* Initial start of lavaland ruin budget system
Weights are dumb, we're gonna use BUDGETS!
To be clear, each round, there will be a budget for ruins.
HERE IS A ROUGH APPROXIMATION OF THE AIMED PROCESS
- Pick a ruin
- Can we afford it? If not, start again.
- Try a bunch of times to place it.
- Did we place it? Good, then reduce our budget accordingly
Does this look a little like syndicate surplus crates? That's the point.
* Subclassery
* Budget based ruin loader is GO
* Cryostasis (with a s)
* Adjusted costs, added no-duplication
* No dupes on the major ruins
* Deleted files, budget is config
* Corrected description
* Fixed ruins failing to load, duplication
* The zoo goldgrub will no longer burrow away
* Space descriptions and names
* No more weird Xenonest loops, should be all good
* Adjusted costs based on feedback
Peacekeeper borgs now have a config option
"Harm Alarm" now respects and is blocked by earmuffs
Secborg/peaceborg disable config option is now more verbose :^)
Caveat: All humanized monkeys will still be human, I tried to fix this but thanks to what seems to be a race condition doing so made roughly 50% of all humans drop dead at the first life tick.
Updates the race list in game_options.txt. Our servers don't auto update config files, so this is just for anyone who makes a server going forward.
Replaces typesof(path) - path with subtypesof(path) in obvious places. I was a bit conservative, there's probably a few more places that could use this.