Skip to content
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

Tape Recorders #512

Merged
merged 9 commits into from
Jan 19, 2025
Merged

Conversation

PursuitInAshes
Copy link
Contributor

@PursuitInAshes PursuitInAshes commented Dec 22, 2024

About the PR

Adds taperecorders from wizden PR space-wizards/space-station-14#32234
Also gives the PI role two cassets and a tape recorder.

Added a voice recorder and playback device that uses analog audio cassettes. Players can record their conversations, up to 60 seconds in real-time length, and store the recordings on the cassettes. Players can toggle between recording and playback. If a message is too long to be said towards the end of the tape, it will be cut off partway through.

Why / Balance

This fits well with a HRP setting, allowing detectives to perform interviews, reports to do the same, PIs have more tools available to them.

Technical details

From the wizden PR:
Active bool changed to ActiveTapeRecorder so it can be queried for
UI uses RadioOptions instead of making them manually
most of the state is just gotten from the component instead of being sent in every bui state
it also stores the used speech verb now

From what I believe the PR was based on:
Tape recorder hears all spoken words within a range of 4 tiles, whispers are only audible within 1 tile.
Messages are recorded onto the tape cassette, correctly handling the voice changer
Tape recorder can be swapped between playback, recording and rewinding modes - and then used in-hand to start/stop that mode
Tapes hold 3 minutes of audio, and the recorder will auto stop when the limit is reached
A tape can be damaged, which will corrupt a random entry - it must then be repaired (respooled) with a pen or screwdriver before it can be played again. Corrupted entries will remain corrupted.
On each damage event, a single message will have ~25% of its contents replaced with '#', the same message will be progressively more corrupted if its chosen on multiple damage events.

Media

image
image
image
image

Changelog
Tape recorders have been added, they are capable of recording brief snippets of speech. They can be found around in security lockers, on PIs, or crafted in lathes. Cassettes with recordings on them can be attacked to destroy some of their stored data, such as who was speaking or specific characters, they can be repaired to be playable again by using a screwdriver on them.

@github-actions github-actions bot added Changes: Sprites Changes to sprites. Changes: UI Changes to UI files. labels Dec 22, 2024
Copy link
Contributor

github-actions bot commented Dec 22, 2024

RSI Diff Bot; head commit e3e4226 merging into 0253cc3
This PR makes changes to 1 or more RSIs. Here is a summary of all changes:

Resources/Textures/_CD/Objects/Devices/cassette_tapes.rsi

State Old New Status
tape_greyscale Added
tape_ribbonoverlay Added

Resources/Textures/_CD/Objects/Devices/tape_recorder.rsi

State Old New Status
inhand-left Added
inhand-right Added
taperecorder_empty Added
taperecorder_idle Added
taperecorder_playing Added
taperecorder_recording Added
taperecorder_rewinding Added

Resources/Textures/_CD/Objects/Storage/boxes.rsi

State Old New Status
recorder Added

Edit: diff updated after e3e4226

Copy link
Collaborator

@dffdff2423 dffdff2423 left a comment

Choose a reason for hiding this comment

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

I did a quick look over of the code and it looks fine, however I have not tested in-game yet.

Copy link
Collaborator

@Nairodian Nairodian left a comment

Choose a reason for hiding this comment

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

Conceptually fine.

Copy link
Contributor

@MilonPL MilonPL left a comment

Choose a reason for hiding this comment

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

i gave up halfway through it but EOF newline everywhere + trailing spaces in comments please...?

Content.Client/_CD/TapeRecorder/TapeRecorderSystem.cs Outdated Show resolved Hide resolved
Content.Client/_CD/TapeRecorder/TapeRecorderSystem.cs Outdated Show resolved Hide resolved
Resources/Audio/_CD/Items/Taperecorder/attributions.yml Outdated Show resolved Hide resolved
Resources/Locale/en-US/_CD/taperecorder/taperecorder.ftl Outdated Show resolved Hide resolved
Resources/Prototypes/Roles/Jobs/Wildcards/reporter.yml Outdated Show resolved Hide resolved
@KittenColony
Copy link
Contributor

personally, I'd say make it longer then a minute

@PursuitInAshes
Copy link
Contributor Author

PursuitInAshes commented Dec 28, 2024

Went through and addressed most of Milon's reviews, everything else I either didn't have time for, don't know how to properly do, or don't think matter enough. Everything I didn't do is left unresolved, so should be noticeable.

@PursuitInAshes
Copy link
Contributor Author

More review fixing has been done, everything else I'm not sure how to do or if its worth doing, so let me know.
I updated the PR changelog to be more accurate and useful to players, but most of the PR information is still wrong because I can't sit down and test more thoroughly for details.

@dffdff2423
Copy link
Collaborator

I will look at this in a bit, clearly I need to look it over a bit better. (I only really skimmed it before because I figured wizden would have caught most of it).

@PursuitInAshes
Copy link
Contributor Author

I will look at this in a bit, clearly I need to look it over a bit better. (I only really skimmed it before because I figured wizden would have caught most of it).

Thats what I thought too, guess I was mistaken.

@MilonPL
Copy link
Contributor

MilonPL commented Dec 28, 2024

Feel free to ping me on the discord if you have any questions or need help.

Copy link
Collaborator

@dffdff2423 dffdff2423 left a comment

Choose a reason for hiding this comment

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

Sorry... most of these you should be able to get rider to fix for you automatically. I know you are not the best with c# so feel free to ask me here or on discord if you have any questions.

@PursuitInAshes
Copy link
Contributor Author

I know we said it on discord already but wow, how did this get so far without these fixes?
I'll sit down and work on these soon, hopefully rider will work with me.

@PursuitInAshes
Copy link
Contributor Author

Everything left I'm not sure the best way to fix (this includes test fails), I'm happy to sit down and get some help, or just look at you fixing things. Just let me know.

@dffdff2423
Copy link
Collaborator

Right now the tests are failing because there are compiler errors.

Copy link
Collaborator

@dffdff2423 dffdff2423 left a comment

Choose a reason for hiding this comment

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

Okay from me if tests pass.

@LankLTE LankLTE merged commit 8eec5db into cosmatic-drift-14:master Jan 19, 2025
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Changes: Audio Changes: Sprites Changes to sprites. Changes: UI Changes to UI files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants