-
Notifications
You must be signed in to change notification settings - Fork 3.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Seperate EMAG into EMAG and Authentication Disruptor #34337
Conversation
If anyone plans to test just know like half of the changelog still isnt implemented :godo: |
This is done in Delta-V and it works out fine |
Good, Emag does too much stuff at the moment. |
this might also allow for the emag to be unfrozen so we cna get more cool interactions |
why is this a needed change? the emag is fine as it is right now |
The emag does WAYY too much for a single item. It was requested several times to seperate it into several items (like how tgstation has it) |
It isn't. The EMAG has a hilarious amount of interactions and as such new EMAG interactions are frozen for this exact reason. Did you know you can EMAG a fire alarm? I didn't know you could until I wrote my guidebook entry on it, and let me tell you I hate that fact so much. |
You increase the price of it not completely ruin it. This PR is awful. Most of the interactions don't even do anything besides give you clothes or drinks. It's main purpose is emagging doors and the recycler. I rarely ever see it used for anything else and this entire PR is changing something completely uneeded soley because of useless interactions. |
I dunno the emag has a lot of great interactions... You know... Borgs, jamming cryopods, making people rot 10x faster on cryo beds, the recycler, syndie contra in a lot of vending machines (especially cigs machine), printing weapons on lathes |
The Emag does so much stuff as one item that adding more interactions has been frozen. It's a swiss knife that needs to be split to give it some design space. |
I dunno man. for 3 tc I can just get a jaws of life and do what this PR is proposing 10x better and cheaper without leaving a single trace. |
If you have the time to wait for jaws while wanting to break into bridge, go for it champ :godo: |
Then do that. That's called player agency. If you want to wait a while exposing yourself to save some TC, then do that. |
Code complete |
You might want to fill the "why/balance" and "technical details" parts of the PR while you're waiting ;) |
Lazy :( |
I can only imagine that this will lead to more baseforks aswell, because of folks being so set in their ways about the Emag. |
Marking as ready for review if a maintainer wants to review it. I still need the sprite before it can be merged tho |
Its... Its over... Im finally free... |
Well actually... Changes Requested |
This WILL happen and I WILL cry |
The urge to assign this to PBJ is so real (godo) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Minor nitpicks, I'm going to blindly trust you that all of the interactions work as intended.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me.
My only real issue is a nitpick of putting the checks on one line with OR checks. Otherwise this is fine. |
Soooo... are EMAG interactions getting unfrozen then? |
What about thief EMAG? What with it? |
No unfreeze, and thief gets both |
About the PR
Title. The popular emag was seperated into the regular cryptographic sequencer and authentication disruptor.
The Emag retains its original purpose of adding hidden functions to machines (gibbing recycler, locking cryopods etc) but loses the ability to break locks and airlocks.
The Authentication Disruptor has the ability to break locks and airlocks while also removing their access. Unlike the old emag, this is not permanent and can be fixed by unbolting the airlock and restoring access with the access config.
Why / Balance
The emag was always controversial due to the sheer feature bloat it had. It basically became an always-buy syndie item, which not only lets you break into places but also gives you plenty utility with other machines.
Due to all of that, emag uses were frozen as to not make it even more powerful. This PR aims to seperate the powerful airlock/lock breaking ability into a seperate item to ease the burden on the poor emag, turning it into more of an item for niche uses that it could already do anyways.
Technical details
Added EmagType flag to the EmagSystem. This is used to reference what kind of emag was used on an entity in events.
Added a new OnAccessOverriderAccessUpdatedEvent (god...) that is raised on an entity when it's AccessReader is updated by the access configurator.
Changed Vending machines to not use the EmagComponent as means of the access being broken anymore.
Changed how GotEmagged is handled.
Moved some borg code to shared.
Media
(Bit outdated, but basically same deal)
2025-01-09.21-34-48.mp4
Requirements
Breaking changes
Emag system got refactored. To EMAG an entity it now must have the GotEmagged event ran on it with the correct flag.
Removed OnAttemptEmagEvent. All checks must be done within the GotEmagged subscription.
Renamed BreakOnEmag functions in AccessReader and Lock to BreakOnAccessBreaker.
Moved borg code responsible for emagging to shared.
Removed EmagSound from components that used it, it is now stored on the EmagComponent.
All emag interactions must now check for the correct flag in the event itself.
Example:
TODO
Changelog
🆑