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)
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
Adds a 2FA system for admins. When a config is enabled, a database storing your last CID and IP will be checked to see if you have connected through there before. If not, you will not be able to admin until you are verified. Verification is done by opening a website (decided by config), which is tasked with updating the database entry, which will then let you reverify.
MSO wants to implement this as a forum page, but the DM-side is completely agnostic to whatever the implementation is, just that it updates the database. This means that it could potentially be some TOTP stuff, even.
If the database is down, a backup file is checked for your most recent verified connection (IP + CID). If you are on this connection, you will be able to connect fine. If the database is down and you are on a new connection, someone with +PERMISSIONS can manually verify you through the Permissions Panel.
We've had repeated attacks of admins getting their accounts stolen, it's time.
Allows all custom names in Character Settings to be reverted to either the default name or a random one, instead of only cyborg and bible names.
Allows picking a random religion in Character Settings. Changing your religion updates your bible and deity if applicable. It uses the religions and bible names that were already in chaplain spawning code. I've added deities to most of them, to save players having to figure them out themselves. I wasn't familiar with a lot of these religions and references so let me know if I've gotten something wrong.
This fixes the problem of the keybind conflict message being shown over and over again until you manually save your preferences with correct keybinds + resetting to classic keys works now
You had to manually save your prefs because the code didn't save the new unbound keys to the prefs file
Classic mode was broken because the emote hotkeys didn't have classic_keys set to Unbound by default
New hotkeys are now actually set to Unbound if no default key is set
This was broken for emote hotkeys because classic_keys = list("Unbound") was missing for them
It was also broken because the code assumed conflicting keys if some Unbound key already existed ...
The code also used classic key defaults even if you had hotkey mode enabled thats fixed now too
* 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 hair (which already was, I think?), underwear, facial hair, and undershirts all available to all genders.
Random character generation is not changed. Eventually, I want to remake random characters to look more believable, but that is out of scope.
Gender-specific preferences are an outdated trope that make the code harder to work with.
This change is also important as a total makeover of the preferences menu and the preference internals are going underway. It is significantly easier to work with when a preference can simply be a list of things you can choose, rather than having to depend on another preference to decide what they can show. While I could make this change at that time, it is also important that the new preferences menu keep parity, and avoid bikeshed on a trifling detail.
Gives the heading an underline to separate it from the rest of the text and makes it title case so it stands out without overstating the urgency of the situation
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
* Improve code in statpanel.dm
* Improve phrasing in preferences_toggles.dm
* Move "Interviews" under the "Tickets" tab
Co-authored-by: celotajstg <celotajstg@users.noreply.github.com>
Changed column height from 17 to 15 and changed the order to a more sensible and aesthetic one.
Co-authored-by: celotajstg <celotajstg@users.noreply.github.com>
About The Pull Request
Currently admins can't access the ticket logs for Resolved, Disconnected, Closed and Active tickets due to an early return that will block these from being opened in 100% of circumstances.
Clicking on the Active/Disconnected/Closed/Resolved tickets would have behaviour handled by /datum/admin_help_tickets/proc/BrowseTickets() which was reached through Click() calls.
image
When we call .Click() from topic calls, we provide a null var for the control parameter.
This then leads through to /client/Click() where #57084 added a bunch of if(!control) checks supposedly ported from TGMC (or at least Fikou couldn't explain why we changed that).
I can't find a single instance of us using this locally, it appears it's always passed through to Byond. Byond docs at http://www.byond.com/docs/ref/#/client/proc/Click describe it as control - the name of the skin control involved
I can't see any reason to early return if control is a FALSE-y value. This check is what was blocking access to the admin_help_tickets datum.
In testing, removing these checks restored previous functionality.
Why It's Good For The Game
Admins less triggered.
Changelog
🆑
fix: Admins can once again open the stat panels to look at active, disconnected, closed and resolved tickets.
/🆑
* fullauto component
* eh
* h
* brap
* it works!
* FUCK SHITUP
* dumbass
* l6
* oops
* GOD
* THE LAST 10% OF A PROJECT IS 90% OF THE WORK
* slopwer projecitles, replaces the tesla gun
* heavy
* minigun
* minigun stuff
* runtime fixes, pointer icon
* nuh uh
* makes modifeirs things
* nerf this
* yes
* aghh
* agh
* real high intensity changes here
Co-authored-by: Ryll-Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
Security officers will now be paired up together in the same department, across departments. This means that, instead of 4 officers being split across 4 departments, there'll now be 2 groups of 2.
Late-join officers will be put into any department with only 1 officer. If none exist, the least populous department will be chosen, with their preference having priority.
Updates the maps to have more spawns for departmental officers. Delta previously had none, and now has some. Fixed a bug where MetaStation's security departmental officer was a supply one instead.
Removes the "random" departmental preference. All security officers are now given a department. The "none" preference still exists, but just to show that you don't care which department you're put into.
Updates the config to comment out SEC_START_BRIG. This is what the configuration was already on live servers.
This is something that should likely be test merged, but it mucks with savefiles. Luckily, the only damage it does is changing random departments to none, so if a TM is reverted, only that will have to be changed.
I was dumb in #56345 and committed a suggestion from a maintainer without actually checking what it did, leading to the part where you select what outfit you want in your preferences to not actually let you select an outfit.
This also removes the can_be_admin_equipped var from outfit datums, apparently it was supposed to be used for outfits that were only supposed to be spawned in certain ways or some nonsense, but nothing actually used it so bye bye
Creates update_name and update_desc
Creates the wrapper proc update_appearance to batch update_name, update_desc, and update_icon together
Less non-icon handling code in update_icon and friends
Signal hooks for things that want to change names and descriptions
99%+ of the changes in this are just from switching everything over to update_appearance from update_icon
Done using this command sed -Ei 's/(\s*\S+)\s*\t+/\1 /g' code/**/*.dm
We have countless examples in the codebase with this style gone wrong, and defines and such being on hideously different levels of indentation. Fixing this to keep the alignment involves tainting the blames of code your PR doesn't need to be touching at all. And ultimately, it's hideous.
There are some files that this sed makes uglier. I can fix these when they are pointed out, but I believe this is ultimately for the greater good of readability. I'm more concerned with if any strings relied on this.
Hi codeowners!
Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
Each time new keybindings are added, we receive a message at the
beginning of each round telling us about keybindings we've set that
conflict with what the new ones default to. This is desirable. However,
it could take up less space while still drawing the eye.
About The Pull Request
This PR removes intents and replaces them with a combat mode. An explanation of what this means can be found below
Major changes:
Disarm and Grab intents have been removed.
Harm/Help is now combat mode, toggled by F or 4 by default
The context/verb/popup menu now only works when you do shift+right-click
Right click is now disarm, both in and out of combat mode.
Grabbing is now on ctrl-click.
If you're in combat mode, and are currently grabbing/pulling someone, and ctrl-click somewhere else, it will not release the grab (To prevent misclicks)
Minor interaction changes:
Right click to dissasemble tables, racks, filing cabinets (When holding the right tool to do so)
Left click to stunbaton, right click to harmbaton
Right click to tip cows
Right click to malpractice surgery
Right click to hold people at gunpoint (if youre holding a gun)
Why It's Good For The Game
Intents heavily cripple both the code and the UI design of interactions. While I understand that a lot of people will dislike this PR as they are used to intents, they are one of our weakest links in terms of explaining to players how to do specific things, and require a lot more keypresses to do compared to this.
As an example, martial arts can now be done without having to juggle 1 2 3 and 4 to switch intents quickly.
As some of you who saw the first combat mode PR, the context menu used to be disabled in combat mode. In this version it is instead on shift-right click ensuring that you can always use it in the same way.
In this version, combat mode also no longer prevents you from attacking with items when you would so before, as this was something that was commonly complained about.
The full intention of this shift in control scheme is that right click will become "secondary interaction" for items, which prevents some of the awkward juggling we have now with item modes etcetera.
Changelog
cl Qustinnus
add: Intents have been replaced with a combat mode. For more info find the PR here: #56601
/cl
negative quirks were impossible to create because there was zero nuance between how bad traits were, for example if you got light drinker and family heirloom, two relatively easy quirks to manage, you can get freerunner. This meant a ton of neutral quirks had to be neutral quirks because giving them even -1 points would make it too easy to get good traits. I've bumped up most quirks by x4 to allow for more nuance between what quirks are actually worth. With some of them being lowered (Like family heirloom and light drinker) as theyre not really supposed to be worth so much for so little.
quick log of changes for CB:
- Every quirk not mentioned had it's point value increased x4 (e.g. 1 -> 4, 4 -> 16)
- mime / clown fan is 2 points (change of -50% with this pr)
- musician is 2 points (change of -50% with this pr)
- depression goes from -1 to -3 points (change of -25% with this pr)
- nyctophobiagoes from -1 to -3 points (change of -25% with this pr)
- junkie from -2 to -6 points (change of 25% with this pr)
- frail from -2 to -6 points (change of 25% with this pr)
- smoker from -2 to -6 points (change of 25% with this pr)
- unstable -2 to -10 points (change of 25% with this pr)
The emote CSS class was no longer in use, it has been unitalicized and made into the actual emote class, back into local.
A CSS class for info has been created which has no special CSS.
The who verb has been put into info. (infoplain CSS class)
PDA message receiving has been put into info (PDA message sending was already in info). (infoplain CSS class)
Supply radio has been properly placed into radio.
Service radio has been properly placed into radio.
Binary talk has been placed into radio.
A CSS class for minor announcements has been created.
Minor announcements (shuttle purchases, head of staff office announcements, silicon announcements, etc) have been placed into radio (major announcements are already in radio). (minorannounce CSS class)
Filter refactor + In Game Filter Editor
Accessed via VV in the dropdown of atoms. "Edit Filters.
Makes filters actually usable.
Co-authored-by: ghgh <hghgh>
About The Pull Request
• Resolves a probably unknown oversight allowing players to find out who plays who by using the ignore verb, which if the user is a ghost, will list the names of people's mobs alongside their ckey if they are also a ghost.
Why It's Good For The Game
Removes a potential method of metagrudging and addresses a privacy concern for those who wish to play anonymous characters. Yes, you can still see this stuff in the round-end report.
We don't lose anything here. If we're using this verb, we're doing it because we want to ignore someone's OOC messages. We don't need this additional information. I feel like this is just an oversight.
Changelog
🆑
fix: Players can no longer us the ignore verb to gather a list of people's characters and ckeys together.
/🆑
About The Pull Request
Honestly, I'm not sure this is the... Correct solution? But people more familiar with this will likely show me da wae.
Prohibits creating names that can't actually be spoken in-character due to chat filters by adding CHAT_FILTER_CHECKs to the procs that handle sanitising them.
For admin-utilised renaming procs, they'll be given a simple alert box to warn them their chosen name contains words prohibited by the IC chat filter and be allowed to confirm or cancel out.
Why It's Good For The Game
If you can't speak the name IC, chances are the name shouldn't be allowed at all. Players may occasionally be forced to ahelp certain names because they contain words prohibited in chat filters.