Skip to content

Conversation

@Quantum-cross
Copy link
Contributor

About the PR

NOTE: THIS DEPENDS ON #39217 AND #37689 AND #39251

This is part 3 of my turnstile improvements.

This PR introduces the ability to break turnstiles with the Authentication Disruptor and EMAG.

The auth breaker will make the turnstile constantly spin, so there is a visible side effect of breaking a turnstile.

The Emag will covertly flip the direction of operation 180 degrees. The arrow shown on examination does not change.

Why / Balance

Auth breaker functionality should be included for parity. The turnstile has an access reader so the auth breaker should be able to break it.

The Emag functionality is funny, but if it falls afoul of the emag "content restriction", it can be disabled for now.

Technical details

In this PR there is a fair amount of refactoring of the animation code. Besides that, the auth/emag interactions are pretty simple

Media

Will upload later closer to prerequisite PRs being merged.

Requirements

Breaking changes

Only really stuff internal to the turnstile system.

Changelog
🆑

  • add: Authentication Disruptor can now be used on turnstiles!
  • add: Cryptographic Sequencers can now be used on turnstiles!

…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
- 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
@PJBot PJBot added S: Needs Review Status: Requires additional reviews before being fully accepted. Not to be replaced by S: Approved. S: Untriaged Status: Indicates an item has not been triaged and doesn't have appropriate labels. Changes: Sprites Changes: Might require knowledge of spriting or visual design. labels Jul 28, 2025
@github-actions github-actions bot added the size/L Denotes a PR that changes 1000-4999 lines. label Jul 28, 2025
@github-actions
Copy link
Contributor

RSI Diff Bot; head commit 39a926f merging into 45cef10
This PR makes changes to 1 or more RSIs. Here is a summary of all changes:

Resources/Textures/Structures/Doors/turnstile.rsi

State Old New Status
deny Modified
operate Modified
turnstile Modified
turnstile_map Modified
assembly Added
bolted Added
granted Added
panel_open Added
turnstile_idle Added
wired Added

@Entvari
Copy link
Contributor

Entvari commented Jul 28, 2025

Would it be out of scope to make it so an AI could temporarily apply the access breaker effect to a turnstile in place of EA'ing it, as currently the AI has no way to let players out of an area enclosed via turnstiles.

@Quantum-cross
Copy link
Contributor Author

Would it be out of scope to make it so an AI could temporarily apply the access breaker effect to a turnstile in place of EA'ing it, as currently the AI has no way to let players out of an area enclosed via turnstiles.

Part 4 will be bolting, which I've already written but need to make an atomized PR.

I plan on doing a Part 5 that includes Emergency access mode, which still needs to be decoupled from the Door system.

@Killerqu00 Killerqu00 added P2: Raised Priority: Item has a raised priority, indicating it might get increased maintainer attention. T: New Feature Type: New feature or content, or extending existing content A: Security Area: Security department, including Detectives, HoS S: Requires Content PR Status: Requires a change to SS14, for which there is no open PR currently. S: Draft Status: This is a draft and might need to be retriaged upon opening. S: Needs Content PR Merged Status: Requires an existing SS14 PR to be merged first. and removed S: Untriaged Status: Indicates an item has not been triaged and doesn't have appropriate labels. S: Requires Content PR Status: Requires a change to SS14, for which there is no open PR currently. labels Jul 28, 2025
@github-actions github-actions bot added the S: Merge Conflict Status: Needs to resolve merge conflicts before it can be accepted label Sep 7, 2025
@github-actions
Copy link
Contributor

github-actions bot commented Sep 7, 2025

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/L Denotes a PR that changes 1000-4999 lines. T: New Feature Type: New feature or content, or extending existing content

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants