The "don't allow any organics to escape on the emergency shuttle alive" objective no longer counts inorganic species like golems, plasmamen, androids, etc.
Some malf AI objectives have had their descriptions updated to reflect them only caring about player-controlled creatures.
major cleanup of modules/atmospherics folder and all related files, still many missing
-cleanup of procs name
-cleanup of vars name
-documentation of some of the procs
-minor changes to some for() logic (no in game changes just early continue or as anything checks)
No in game changes, only code and docs
Bring _HELPERS/_lists.dm to latest standards by:
-Adding proper documentation and fixing existing one
-Giving vars proper names
-Procs now use snake case as per standard (many files that use those procs will be affected)
bring code up to latest standards, move many procs to named files inside _HELPERS
no idea where to put some of these procs, help is appreciated
made more files to contain some unique code, deleted unsorted.dm, we can rest now
Extraction areas are now checked with GLOB.the_station_areas, and not just for being on the same Z level. This fixes#61287 (Contractor dropoff points being inside ruins)
There's probably a more elegant way to do this, but it works.
Obsessed is a really weak antagonist whose objectives revolve around creeping on a single crewmember. He doesn't have any special ability whatsoever other than suffering from heavy butterflies in the stomach when his mood is great or above and his presence barely affects the round. They shouldn't have the same cost of other rulsets like swarmers, pirates, ninjas and nightmare, or even latejoin traitors.
About The Pull Request
Rewrites the entire preferences menu in tgui. Rewrites the entire backend to be built upon datumized preferences, rather than constant additions to the preferences base datum.
Splits game preferences into its own window.
Antagonists are now split into their individual rulesets. You can now be a roundstart heretic without signing up for latejoin heretic, as an example.
This iteration matches parity, and provides very little new functionality, but adding anything new will be much easier.
Fixes#60823Fixes#28907Fixes#44887Fixes#59912Fixes#58458Fixes#59181
Major TODOs
Quirk icons, from @Fikou (with some slight adjustments from me)
Lore text, from @EOBGames (4/6, need moths and then ethereal lore from @AMonkeyThatCodes)
Heavy documentation on how one would add new preferences, species, jobs, etc
A lot of specialized testing so that people's real data don't get corrupted
Changelog
cl Mothblocks, Floyd on lots of the design
refactor: The preferences menu has been completely rewritten in tgui.
refactor: The "Stop Sounds" verb has been moved to OOC.
/cl
Fixes mistake made in #59765, that fixed malf humans spawning by making it impossible for any malfunctioning ai to spawn.
That PR used wrong proc, so it always returned TRUE, so the code declined every player candidacy for the antag datum. I changed it for correct proc, and did some basic testing on it.
Simply puts species IDs into defines ("lizard" turns into #define SPECIES_LIZARD "lizard"). This does not affect any gameplay, and is purely for making sure future code doesn't go all fucked up because someone accidentally misspells something
I only changed code that was spelt correctly, so if there actually is a typo somewhere, it isn't changed
Converts most spans into span procs. Mostly used regex for this and sorted out any compile time errors afterwards so there could be some bugs.
Was initially going to do defines, but ninja said to make it into a proc, and if there's any overhead, they can easily be changed to defines.
Makes it easier to control the formatting and prevents typos when creating spans as it'll runtime if you misspell instead of silently failing.
Reduces the code you need to write when writing spans, as you don't need to close the span as that's automatically handled by the proc.
(Note from Lemon: This should be converted to defines once we update the minimum version to 514. Didn't do it now because byond pain and such)
When a midround ghost event doesn't get any applicants, a sleeper agent/syndicate infiltrator will roll in its place.
A sleeper agent will attempt to roll first, followed by a syndicate infiltrator. Neither of these rolls are forced, so if there is not enough threat, or the threat level doesn't match the requirements, then it will not roll, however the threat_level% chance of sleeper agent does not come into effect.
Sourced from #59118 and a cursed project I'll pr later, This pr contains a lot of harddel fixes for stuff that pops up after a player interacts with something. I'm not gonna list them all here because there's something like 60 130, check the commit log if you're curious
Oh and I moved ref tracking screaming to a separate define, and made some optimizations to the thing in general. I think that's it, this pr is a bit of a frankenstine
Fixes lone abductor scientists by adding a variable to ghost poll rulesets for how many applicants are needed for the ruleset to execute. This fixes#59441 and any future dynamic rulesets that necessarily require there to be more than one applicant to function correctly.
Increases the minimum pop for both heretic rulesets to roll to 18.
I have permission from head admins to touch Dynamic ruleset values, and was also given explicit permission for this one.
* Beep beep gamemode removal coming through
* More cleaning
* More cleaning
* Clean up station_was_nuked
* Station nuke source
* Remove name
* More unused functions
* Remove antag rep, which was unused in dynamic
* Remove more antag rep stuff, which was UNUSED IN DYNAMIC
* Station goals outside of mode
* Remove setup_done
* Remove player lists
* Move some older procs
* Fix simulations
* Attempt to fix this stupid case sensitive bullshit
* Revert "Attempt to fix this stupid case sensitive bullshit"
This reverts commit 8693c02d67602543d7d4b92130a7a32cd973e5bf.
* ???
* Delete icons/Testing directory
* Move station_goals global definition
About The Pull Request
These panels used the mutating list of available rulesets based on things like repeatability, not the list of ALL rulesets.
They also used sortList, but this didn't work since these are datums and not names.
Changelog
cl
fix: Dynamic rulesets now always show in the force ruleset panel.
fix: Dynamic rulesets now properly sort in the force ruleset panel.
/cl
* FINALLY IT IS DONE FUCK
* tip of the round into ooc
* adds cyopod chat messages to the info chat filter
* last one I promise probably, mob spawner messages to info filter
* holoparasite, round will start in x and keybinding conflict to respective filters
* removed motd from constants, made it infoplain surrounded instead
* changed info to infoplain
* Makes tanks only process when needed, rather then doing it constantly
* Makes portable atmos machines only process when needed, makes adding and removing atmos machinery cheaper, makes the tank processing logic actually work properly
* Makes pipelines only react() when their mix changes, fixes a ton of misuses of update_parents that were causing about 10ms of load for atmos just from reconcile_air()
* Adds in a new reaction framework alongside the old one for profiling related reasons
* whoops
* Cleanup, removes the react profiling code, I've chosen a direction to go here
* Cleans up some code, adds comments describing how to interact with portable atmos machines/tanks and their
mixes, adds a blurb to Atmospherics.md about the topic as a whole, leaves a line of bread for someone to follow
if I get hit by a bus in 2 days (Knock on wood)
* Removes priority from reactions, moves priority groups to the defines file
* whoops
* Converts air_contents to _air_contents, replaces all the out of file things that used it with return_air()
* Replaces the canister air contents uses, converts it back to air_contents, I decided I didn't like the _
* Fixes
About The Pull Request
Related to #57925--fixes the main bug of it, though this report also encompasses the bug where deciseconds are being shown as seconds.
Changelog
🆑
fix: Fixed a bug where the latejoin injection timer would not reset, meaning past a certain point anyone who joined would get antag, draining all the threat.
/🆑
Removes all /datum/game_mode except dynamic. Eventually, all of mode and game_mode will be removed, and Dynamic will become an ingrained system. Every single other gamemode was unmaintained at best and poisoned other code at worst. Currently all tg servers run 24/7 Dynamic, so the time to act is now.
* Remove gamemode references from age checks
* Monkey
* Remove heretics
* Remove BBs
* Refactor uplinks and remove clown ops
* Remove nuke ops
* Removes and refactors cult
* Remove extended
* Remove and move out meteors
* Removes wizard
* Remove sandbox
* Remove changelings
* Remove traitors
* Remove revs
* Remove gangs
* Remove changing mode and voting for new gamemodes
* get_candidates signature fix
* Summon ERT and NERD in their own panel
* Remove some old unneeded age_check stuff
* Fix old signatures of get_uplink_items
* Use Extended like config for dynamic.json
* Fix discounted gear
* BLAMMED!!!!
* doesn't check if late arrivals exists
Co-authored-by: Emmanuel S. <emmanuelssr@gmail.com>
* splits up the yuge check
Co-authored-by: Emmanuel S. <emmanuelssr@gmail.com>
Logs the threat shown on the paper in Dynamic to dynamic.json. This is not the same as threat level, as the paper has a chance to report inaccurate results.