-
Notifications
You must be signed in to change notification settings - Fork 3.7k
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
Fake mindshield componentry and Implanter #34079
Fake mindshield componentry and Implanter #34079
Conversation
- Add FakeMindshield System and Component - Add FakeMindsheildImplantSystem and Component - modify ShowMindShieldIconsSystem to check for FakeMindshields - add all supporting yaml for the Implants, action and uplink - add loc file stuff - add unfinished sprites
- Move Implant sameness check to AFTER the implant DoAfter to prevent instant identification of Deception Implants - cleanup the systems and components - add the fake mindshield to the Thief toolbox
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 great! Just a few minor issues
Content.Shared/Mindshield/FakeMindShield/SharedFakeMindshieldSystem.cs
Outdated
Show resolved
Hide resolved
Content.Shared/Mindshield/FakeMindShield/SharedFakeMindShieldImplantSystem.cs
Outdated
Show resolved
Hide resolved
Content.Shared/Mindshield/Components/FakeMindshieldComponent.cs
Outdated
Show resolved
Hide resolved
Content.Server/Mindshield/FakeMindShield/FakeMindShieldImplantSystem.cs
Outdated
Show resolved
Hide resolved
Content.Shared/Mindshield/FakeMindShield/SharedFakeMindshieldSystem.cs
Outdated
Show resolved
Hide resolved
Ok, so in order to impersonate a mindshielded person properly with only syndicate equipment you would need:
~ 13tc not including how you deal with the person you're imitating or any discounts. The uplink price feels good I think, leaves you with 7 tc which is not enough to get northstars or eswords but it's still enough to deal with a secoff or head if you get the jump on them(webvest with viper and extra mag or a cobra). My only issue with the item is about revs with thief, it could be a cool dynamic but if a headrev gets one of these then there would be no way to stop them, at least till the rework that just got approved is implemented lol. |
sick sprite :godo: |
- Moved ImplantCheck and eventsubscription into Shared - Remove Client/Server extensions of FakeMindshieldImplantSystem and FakeMindShieldSystem and make shared Sealed - make OnToggleMindshield Private, use the event!
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.
I think I like this implant conceptually, though it is hard to say how it will impact how suspicious Sec/Command will be of each other. Probably good to have though, and is a bit nicer than just adding a regular mindshield to the uplink.
Content.Shared/Mindshield/FakeMindShield/SharedFakeMindshieldSystem.cs
Outdated
Show resolved
Hide resolved
Content.Shared/Mindshield/FakeMindShield/SharedFakeMindShieldImplantSystem.cs
Outdated
Show resolved
Hide resolved
Content.Shared/Mindshield/FakeMindShield/SharedFakeMindShieldImplantSystem.cs
Outdated
Show resolved
Hide resolved
- cleaned up extra liens in ImplanterSystem and SharedFakeMindshieldSystem from when i was developing - Uplink catalog no longer lists the implant in 2 spots, only implants now, also uses the On state action icon - added a comment about why it's reraising the action event rather than directly interacting with the FakeMindshield Component
This is rough because if an antag gets hold off a mindshield, they usually get to wipe out the whole sec team without them even realizing why they are being shot by "their own teammate". All it takes is warden opening armory for you to get an antag with free unlimited guns. Most of the time cadets wont even question if you kill someone else as a secoff if you have the mindshield. I do think this is a good PR and skill to have, I just wonder how it will affect SS14 as a whole beyond the scope of this little PR |
I think Id rather we just revert the mindshield UI, and instead make it show in the station records who has one. |
is this pr going anywhere beck? |
I don't see why it shouldn't! |
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.
Really minor nitpicky style issues but besides this it looks good!
Content.Shared/Mindshield/FakeMindShield/SharedFakeMindShieldImplantSystem.cs
Outdated
Show resolved
Hide resolved
- Added a comment about IsEnabled - moved OnFakeMindShieldToggle to Entity<> from Uid, Comp - fixed some formatting in uplink_catalog
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.
Tested and everything seems to work! 🫡
* Fake Mindshield (With some bad sprites) - Add FakeMindshield System and Component - Add FakeMindsheildImplantSystem and Component - modify ShowMindShieldIconsSystem to check for FakeMindshields - add all supporting yaml for the Implants, action and uplink - add loc file stuff - add unfinished sprites * Cleanup, add to thief toolbox, remove metagame - Move Implant sameness check to AFTER the implant DoAfter to prevent instant identification of Deception Implants - cleanup the systems and components - add the fake mindshield to the Thief toolbox * part 1 of fixing the folder problem * Make the fakemindshield sprite folder lowercase * CR - Move ImplantCheck into shared, cleanup - Moved ImplantCheck and eventsubscription into Shared - Remove Client/Server extensions of FakeMindshieldImplantSystem and FakeMindShieldSystem and make shared Sealed - make OnToggleMindshield Private, use the event! * CR - Cleanup extra lines, fix some Prototype - cleaned up extra liens in ImplanterSystem and SharedFakeMindshieldSystem from when i was developing - Uplink catalog no longer lists the implant in 2 spots, only implants now, also uses the On state action icon - added a comment about why it's reraising the action event rather than directly interacting with the FakeMindshield Component * Fake Mindshield CR: - Added a comment about IsEnabled - moved OnFakeMindShieldToggle to Entity<> from Uid, Comp - fixed some formatting in uplink_catalog * CR - Add a bit more comment
About the PR
Added a a Component and Implanter that injects a Togglable fake Mindshield into someone, allowing them to deceive anyone with the ability to see mindshielded status.
This functionality is also later required for Changelings "Mindshield" ability at a later date.
As well due to how Implanting works, the Check for if a implant is already implanted has been moved to AFTER the DoAfter to prevent sufficiently Metagaming Secoffs from instantly identifying if a particular individual is faking their Implant.
Why / Balance
At the moment any attempt to Disguise or impersonate a Command or Security staff is foiled by a lack of Mindshield, and while an antag CAN acquire them via duplicitious means via the ATS, that is a higher bar to cross and further means they might otherwise be unable to shed their disguise to blend back into the crowd.
A Togglable fake is therefor able to Allow an antag with sufficient speech skills to impersonate Command or Security staff and further blend back into the crowd, however such a method is still not foolproof and would require the individual to pick their moment.
Technical details
Moved the SameImplant check into the shared system and into the
Implant
method, as before it would check at the action of trying to implant. it won't use up the implant but gives some breathing room to the implantee to act (and further make it obvious if someone is attempting to metagame), this can probably also be made to Harm the Implanter a-la #32136 to further punish attempted metagaming.Added a check inside of ShowMindShieldIconsSystem to check for enabled Fake mindshields.
Media
2024-12-26.18-25-20.mp4
Requirements
Breaking changes
Moved
CheckSameImplant
fromContent.Server.Implants.ImplanterSystem
toContent.Shared.Implants.SharedImplanterSystem
Changelog
🆑 Kickguy223