* Updates the CustomiseSNPC verb to be less laggy
* Adds a resetSNPC verb to manually reset one.
* Adds a toggleSNPC verb to change between high and low profile mods
* Added a "High Profile" processing mode that can allow the SNPC to tick at custom rates, for special/story SNPCs
* All SNPCs now spawn as Assistants to prevent head spam.
* SNPCs can now be spawned as a doppelganger, and will take the name of a person with the same job as them.
* SNPCs now only hack doors their job doesn't have access to.
* SNPC augmentation values tweaked
* Runtime caused by limbs fixed
* Runtime caused by assigned the SNPC to be a chef fixed.
* Bartender SNPCs now receive a module which allows them to serve drinks to nearby patrons.
* Fixed Chef SNPCs having incorrect modules and home areas.
* Certain modules will now skip being processed if combat is taking precidence.
* Fixed an incorrect emote.
* Clown SNPCs will now drop less items (to prevent massive piles of soap or bananas)
* SNPCs using the healing module will now try to use stackable healing items, and if they are out, instead use their inbuilt tricordrazine hypospray.
* Janitor SNPCs no longer attempt to mop things, and instead use an inbuilt space-cleaner spray
* Chef SNPCs will no longer leave behind uncooked food when trying to process it.
* Chef SNPCs will now use the smartfridge as a source to make custom food.
* Chef SNPCs will no longer run amok, spraying food everywhere.
* Chef SNPCs will attempt to serve up completed food to the Chef's window
* If a Chef SNPC cannot find any viable food source, they will synthesize clones of regular food, which have a lower nutriment count than the real ones.
* SNPCs will no longer explode into items when entering combat, and will no longer throw guns instead of shooting them.
We now write frontend code in Coffeescript, alongside our LESS.
PostCSS adds hacks to make CSS work on old versions of IE.
Bower is used to manage dependencies.
Gulp is used to build the code.
Images are dropped in favor of SVG or CSS effects.
NanoUI is now a 'simple' asset in the asset_cache
Clients now cache their jobbans to save on DB queries.
Legacy jobbans and "new" (savefile) jobbans have been removed.
These are old cruft that has been unused for years, and since we require
a DB for notes anyway we might as well just get rid of the legacy stuff.
I considered removing legacy bans as well, but I was unsure if that
would go way beyond the scope of this PR (my main goal here is making
jobban_isbanned not awful).
Also note that this was basically untested, as I do not have a test
database. Any help testing this would be much appreciated.
Togglable by a verb in the Admin tab. Only Rev, Cult, Ops and Shadowling
atm because the others don't have huds/have more than one hud and I'm
too lazy to handle it properly here. Also adds a debug verb for huds.
Adds a config option for the map rotation chance.
Ups default rotation chance from 50% of round length to 75% of round length.
Moves the procs around.
Adds two new admin verbs:
Force map rotation.
Change map.
Reasoning for why it needs to go:
- NTSL allows anyone to lag the server or crash it.
- Doohl being gone, no one is going to maintain or expand NTSL. Very little has been done on it for several years now, certainly not any new functionality besides signalling.
- The only interesting things that can be done with NTSL have already been done and are on the wiki. Which is what 99% of users do, copy a script off the wiki. Not interesting or fun.
- Users who actually do scripting are too limited to actually do much besides little chat scripts that are amusing for maybe 2 minutes before becoming annoying.
Fixes#11647Fixes#10595Fixes#10445
Technically fixes#10032Fixes#5779
Technically fixes#4710Fixes#1974
The current code for runes is god-awful. Like, seriously terrible. This PR aims to fix that. Rather than having every rune effect defined in a single attack_hand proc, this PR will separate the runes into subtypes, which supports for more modular runes as well as cleans up the code.
It also separates invocation into a two different procs. The first of these will determine if the rune can be invoked; if that passes, the second will cause the rune's effects. There is also a third proc that will cause effects if the rune fails to invoke.
Research words have been removed, and all runes are now available from the start of the round. This is highly subject to change once some feedback is in from actual cult rounds.
Miscellaneous tweaks:
Blood boil runes now explode when used
Convert runes can now work solo, but take time
Armor runes now only provide the basic armor set
Tomes now do a static 15 burn damage and play a sound
If the Escape objective is rolled, the amount of people that must escape will scale with the round population to a factor of 5 (i.e. 50 players = 10 cultists)
This requires a 508 beta version to use. If Travis fails this he's a bitch
Exceptions will generate a stack trace, which is way easier to see and more helpful in actually solving this kind of crap. Also logs all the arguments, src, line, and file automatically.
Removed any dubiously helpful information in the exception names so the runtime condenser won't see each one as a different runtime. If the information is critical to solve these bugs (camera one maybe?), then I'll just make these warnings.
Thrown exceptions crash the currently running proc. Yes that means there's useless returns in a bunch of these, sue me. spawn()'s are to let the proc continue.
Almost all of these are difficult to trigger, but I did test playsound. And frankly even if they do cause bugs by crashing procs, big whoop