Skip to content

Conversation

Lanedon
Copy link
Contributor

@Lanedon Lanedon commented May 20, 2025

About the PR

TLDR :

FYI : The trailer is outdated, actual hailer is a bit different, see tech demo below

trailer-8mb.mp4

This PR adds the security "hailer", an integrated voice system in the security gas mask, SWAT gas mask and ERT gas mask that lets you shout a compliance order to a suspect.

NEW : The hailer presents a wheel of orders to choose from : Pay attention, Say a oneliner, Disperse crowd and Arrest suspect. Selecting one shouts a random voice line from that category. The ERT one has Attention and Combat. This is inspired by the one in GreyStation14.

The hailer has three settings which dictactes the aggressiveness of its hails : low, medium, and high. The higher it goes, the more "shitsec" voicelines are shouted. The setting can be changed with a screwdriver or by verb if you got the access for it.

The hailer can be emagged which changed the hails to... questionnable ones.

The hailer can also have its wires cut off, making it unable to perform the hails. The wires can be put back with a cutting tool.

Why / Balance

The hailer is present in SS13, notably TGstation and I believe is really missing in SS14. I think it has a charm and is closely tied to sec's identity on 13. Sooo, tradition I guess.

As for the gameplay why, it can be really hard to tell a suspect to stop without him or her running off. Nowadays, you must point at them so they understand to stop so you can talk to them or you have to be a keyboard ninja to move and talk at the same time. I think the hailer fixes that.

Technical details

Code

Main

Added a Component/System, ActionEvent, DoAfterEvent and a BUI.

YAML

Modified the Actions/type.xml to add the hail action.
Modified mask.yml to add the component to the concerned masks.
Added soundCollections for the voicelines.
Added a soundCollection for the wirecutter in tools.yml as I didn’t find it in code and suppose it’s done the old way.

Misc

Added a public string in SharedToolSystem for the screwing quality which did not exist. Renamed some hardcoded strings in other areas of the code to reference that one. Tell me if this is fine. ==> This is a merge conflict, need to iron it out

-> This is my first PR regarding code, I would appreciate guidance if I didn't stick to the project's conventions or best practices. <-

Audio

TGstation had some different audio for the hailer : HERE
They are a bit old, I decided to redo them.
NEW : Redid the audio to be less discernible, the earlier versions are too clear on the voice and I think it sounds strange to hear a clear voice in SS14.

Audio overview :

Audiov2.-.github.version.mp4

Visual

Added a sec mask icon with wires for sec gas mask and swat mask.
Added an icon for the hail action.

Freezes / Restrictions

EMAG

Emag can be used to transform the lines said by the hailer, just like in SS13. Why ? Fun and chaos. Self-contained.
ERT one cannot be emagged.

Chat system

Chat code is changed by adding a parameter to ignore the transformation of text (accents). Needed as the lines are from the hailer, in-world.

What should be changed ?

  • Could use some new sprites for the hail action (currently just a sec face), and for the hail orders in the BUI.
  • The swat mask with wires cut looks awful, but I can't get something good of it. I am no spriter and I need help.
  • The humanoid makes a scream noise when hailing since it uses the IC chat system. Can't really fix since I would have to modify chat code even further. Will need to change it once chat refactor is in. ==> Unsure if still true, need testing

Audacity Macro

Macro for english audacity to apply affects, in case downstream wants to make some new sounds that have the same effects.
For Security
For ERT

Media

techDemoV2.mp4

Requirements

Breaking changes

Changelog

🆑 Banedon

  • add: The security gas mask, SWAT gas mask, and ERT gas mask now lets you bark orders to criminals !

Lanedon and others added 30 commits May 12, 2025 15:45
@slarticodefast
Copy link
Member

I did not look at the whole code yet, but it's better to merge #40895 first so that you don't need the server-side system and can just call the chat methods from shared.

@Lanedon
Copy link
Contributor Author

Lanedon commented Oct 16, 2025

I did not look at the whole code yet, but it's better to merge #40895 first so that you don't need the server-side system and can just call the chat methods from shared.

Okay this PR can wait then. I still wasn't finished with code/bugs anyway.

@Lanedon Lanedon marked this pull request as draft October 16, 2025 17:36
@github-actions github-actions bot added the S: Merge Conflict Status: Needs to resolve merge conflicts before it can be accepted label Oct 19, 2025
Copy link
Contributor

This pull request has conflicts, please resolve those before we can evaluate the pull request.

@github-actions github-actions bot removed the S: Merge Conflict Status: Needs to resolve merge conflicts before it can be accepted label Oct 20, 2025
icon:
sprite: Clothing/Mask/gassecurity.rsi
state: sec-hail
useDelay: 10 # Just like screaming
Copy link
Contributor Author

@Lanedon Lanedon Oct 21, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not working, action is "resetting" its delay and I don't know why

@Lanedon Lanedon marked this pull request as ready for review October 21, 2025 17:43
@Lanedon
Copy link
Contributor Author

Lanedon commented Oct 21, 2025

  • Reworked problematic code/yaml, hope it's better now
  • Used shared chat code from Add virtual chat API methods in Shared #40895
  • Don't have to touch chat code anymore, reverting changes made to chat code
  • Added a radial menu. You have now four orders to select from : Pay attention, Arrest, Disperse crowd, Oneliner
  • Changed audio, voice was too clear on previous one. Changed some lines.
  • Added a verb to increase aggro level without a screwdriver. Need security access.

Still need to tidy some code and the occassional missing text/bug. Not happy with ERT sounds either.
Tech demo and audio overview are updated.

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: Audio Changes: Might require knowledge of audio. Changes: Sprites Changes: Might require knowledge of spriting or visual design. Changes: UI Changes: Might require knowledge of UI design or code. P3: Standard Priority: Default priority for repository items. 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.