Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Mirrored on Skyrat: Skyrat-SS13/Skyrat-tg#24959
Original PR: tgstation/tgstation#79604
About The Pull Request
This one is a little bit complicated, and needs some background on how silicon laws work for synced borgs. Generally speaking, a synced borg's laws should always be equivalent to the laws of the AI they're synced to. Unsyncing a borg does not in and of itself change a borgs laws. If an AI has the reporter lawsuit + 3 freeform laws, and you unsync a borg from that AI, the borg will still have reporter + 3 freeform laws for its own laws.
This applies even to the zeroth law that borgs get due to being synced to a malf AI. Currently, a borg will retain this law even if it is unsynced from the malf AI. However, there's an issue with this. Per a recent policy thread, borgs that have been unsynced from a malf AI are no longer antagonists, even though the malf law 0 currently remains. This is very confusing and likely to lead to bans due to players mistakenly believing themselves to still be antagonists. To rectify this, this PR just makes the zeroth law get automatically removed when a borg is unsynced from a malf AI. I tested this extensively to ensure that it should not affect the emag law 0 or the onehuman law board.
I also improved and fixed the feedback when attempting and failing to apply a law board directly to a cyborg. Previously, the feedback was both broken (it attempted to play an emote that doesn't exist) and the feedback was the same for both emagged borgs and borgs that were already synced to an AI. Based on the comments, this was intended to prevent "metagaming." However, this was pretty much unnecessary. Simply unlocking a borg's panel will already tell you if it's been emagged or not, and if you have a borg's panel open to apply law boards directly, then you can easily just check the wires and see for yourself whether the borg is actually synced or not. Now the feedback actually works and is different for synced and emagged borgs.
Why It's Good For The Game
For the zeroth law fix, players should not be at risk of being misled by their own laws. If borgs unsynced from a malf AI are not supposed to be antagonists, then they should not have a law 0 that only antagonists have.
Regarding the law board tweak, the old code was nonfunctional in every way. The code didn't give feedback properly, and obfuscating the feedback was totally unnecessary, as there are far easier ways to tell if a borg has been emagged than by trying to upload laws to it. I checked blame out of curiosity, and the old code is literally 9 years old.
Changelog
🆑 GPeckman
qol: Fixed/improved feedback when failing to apply a direct law change to a cyborg.
fix: Borgs who are unsynced from a malf AI now lose the zeroth law as intended.
/:cl: