-
Notifications
You must be signed in to change notification settings - Fork 4.7k
Turnstile improvements -- Prying/bypassing -- Part 2 #39251
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
Draft
Quantum-cross
wants to merge
36
commits into
space-wizards:master
Choose a base branch
from
Quantum-cross:turnstile-prying
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Turnstile improvements -- Prying/bypassing -- Part 2 #39251
Quantum-cross
wants to merge
36
commits into
space-wizards:master
from
Quantum-cross:turnstile-prying
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…e, not just a locstring. Take the random default BaseTime out of the GetPryTimeModifierEvent, this default was never used. BaseTime is set at construction of the event from PryableComponent instead of an event on PryableComponent. Use `Entity<T>` for OnDoorAltVerb, OnDoAfter Use `Resolve` on nullable component arguments in public functions. Use `Entity<T>` pattern in private functions Add some comments and change some variable names in `PryingSystem for clarity.`
fix high sec door not being pryable fix blast door being pryable
…s so that access can be configured.
- split the spinner and indicator lights into different sprite layers - add an indicator on the left side and add bolted sprite - add wire panel to turnstile, allow electrification, bolting, ai access - add power reciever, turnstile will act as if bolted when unpowered - turnstiles can log access as well and be door probed
…trified grille. add TurnstileGenpop wire layout so it's different from constructed ones add WiresPanelSecurity component for examines add medium security turnstile with steel panel add medium security shocked turnstile with steel panel and electric grille
…pen, pry closed, powered, unpowered, welded, unwelded, hand pry, crowbar, jaws of life.
Add ability to pry turnstiles while solenoid is bypassed
… but also doesn't flash the Access Granted lights on a chain pull, the turnstile just continues turning.
|
RSI Diff Bot; head commit d61cb46 merging into 45cef10 Resources/Textures/Structures/Doors/turnstile.rsi
|
2 tasks
|
Thank you. |
|
This pull request has conflicts, please resolve those before we can evaluate the pull request. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
A: Security
Area: Security department, including Detectives, HoS
Changes: Sprites
Changes: Might require knowledge of spriting or visual design.
P2: Raised
Priority: Item has a raised priority, indicating it might get increased maintainer attention.
S: Draft
Status: This is a draft and might need to be retriaged upon opening.
S: Merge Conflict
Status: Needs to resolve merge conflicts before it can be accepted
S: Needs Content PR Merged
Status: Requires an existing SS14 PR to be merged first.
S: Needs Review
Status: Requires additional reviews before being fully accepted. Not to be replaced by S: Approved.
size/M
Denotes a PR that changes 100-999 lines.
T: New Feature
Type: New feature or content, or extending existing content
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.














About the PR
NOTE: THIS DEPENDS ON #39217 AND #37689
This is part 2 of my turnstile improvements.
This PR introduces the ability to pry and bypass turnstiles, in a similar way to airlocks -- but still quite different.
A "SOLN" (solenoid) wire has been added to the wires panel. When this is pulsed or cut, a user can use a crowbar to bypass the turnstile. After the DoAfter, the user who bypassed the turnstile has 3 seconds to enter the turnstile. If they do not enter the turnstile within 3 seconds of DoAfter completion, they will receive a popup informing them that the turnstile mechanism snaps back and they can no longer enter the turnstile.
This works from any direction, but it takes twice as long to bypass the turnstile from the incorrect direction.
Jaws of life (powered pry) can always bypass a turnstile with the same time penalty as prying a powered airlock. The penalty is also multiplied by two for prying from the wrong direction.
Other entities can still be pulled through a bypassed turnstile if they are pulled by the user who bypassed it, but now the method of "entry" into the turnstile is saved in the turnstile system so more fine grained tuning can be done later.
Thought for later: Perhaps we want to allow "train" chain pulling if the original puller has actual ID access, but maybe we only want a prying user to pull a single entity through and not allow chaining.
Why / Balance
When #39217 gets added, there should be another interesting way to bypass a turnstile without complete destruction. In emergencies, a fully tooled engineer should be able to help people through a turnstile. I think that the method of only allowing the user who completes the pry DoAfter is unique and interesting enough to capture the spirit of turnstiles.
Technical details
When a pry is completed, it will add the pryer to a hashset of UIDs. An update loop will remove exceptions that have expired.
CollideExceptionshas been changed to a dictionary that also stores anEntranceMethodenum so we can use that information for later balance tweaks.Media
Will upload later closer to prerequisite PRs being merged.
Requirements
Breaking changes
Only really stuff internal to the turnstile system.
Changelog
🆑