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

Add "Synthetic" trait (cyborg/robot crew members) #1101

Draft
wants to merge 20 commits into
base: master
Choose a base branch
from

Conversation

pissdemon
Copy link
Contributor

@pissdemon pissdemon commented Apr 17, 2024

About the PR

Adds synthetic crewmembers: these are crewmembers that are visibly cyborgs (partially artificial) or robots (fully artificial). They are crew members that aren't (fully) organic, but work and live their lives much the same, and have the same expectations imposed upon them.

Specifically, this PR adds a trait based on the Cosmatic Drift trait by the same name, The trait is compatible with any player-chooseable species. If you select the trait for your character, you get the following things:

  • Different blood,
  • Different examine text ("synthetic" prefix before your species),
  • A special brain that can be inserted directly into cyborgs (and has lights on it that glow if a mind is still present),
  • the ability to make cyborg noises (like pinging, buzzing, etc.),
  • special cyborg-style typing indicator sprites, specific to the species of your character,
  • EMP sensitivity (getting blinded and stunned by an EMP because it zaps your electronics),
  • (in progress) ion storm notification/messages,
  • (in progress) more synthetic-sounding emote sounds (yawn, scream, etc.) scrapping this for a potential later PR

You can also add optional synth-related markings like visors to make your character look the part, if you wish. These are currently available for vulps and lizards (full-sized visors) and for humans, onis and felinids (a screen that replaces the eyes).

If you wear the glowing variant of visors, they also cast light (can get partially or fully blocked by things you wear on your face), and your eyes and the little lamps on the side of your visor glow, since they're now LEDs! And they stop glowing when you die. The color is determined by your eye color.

Metem'd or cloned synths retain their synthetic status, and paradox anomalies will also copy the synthetic status of the copied crewmember.

Why / Balance

Facilitating roleplay and character design, basically. Some players have characters on CD that are synthetics that they would like to play on Delta. Others already play a synthetic creature (On Delta DEK would be a prominent example of a synth). This lets people be more creative with who they play, and creates a lot of new roleplay opportunities, hopefully enhancing the level of roleplay on the server. Also, toasters are kind of cool.

As with the original design for CD done by @LankLTE (which was just markings, a blood change and typing indicator change to the generic cyborg talk sprite) I tried to keep the synth trait generic. This way people can decide what it means for their character to be "synthetic". People can take any of the existing species and make them full-on robots, or make them cyborgs and, in roleplay, decide which parts of them are artificial and which aren't. They can decide whether they want to use the cyborg emote sounds or stick with regular ones. They can decide if they are ok with their character being metem'd, or if they prefer to play with Unclonable on to simulate the machine not being able to metem their a robot.

There are some things I impose, different from the CD version:

  • Synths are visibly synthetic on examine; since their talk sprites indicate that you can hear them being different it's not a stretch that you can see features that identify them as synthetic.
  • Synths are EMP sensitive, to add a gameplay element to them and also just makes sense with them being partially/fully electronic,
  • Synths have synth brains. I picked a vague sprite (from Aurora) that looks like a case for a brain, and wrote the name and description accordingly. That way people can decide for themselves what's inside: a brain, a positronic device, etc.
  • Visors actually can give you glowy eyes and stuff.

Balancing

Things that change the game balance:

  • The brains of gibbed synths can be inserted directly into a cyborg without the need for an MMI.

Synth brains work like regular human brains with the exception of the glowing LEDs that indicate it still has a mind attached to it. Unlike MMIs or positronic brains, they cannot talk in any way, The only advantage is that they can be immediately inserted into a cyborg.

  • Synths, due to their cyborg nature, are vulnerable to EMP attacks and get temporarily blinded and stunned by them. They also make them stutter.

This is obviously a downside for the synth, since it offers anyone the ability to stun them. However, this is mitigated by the fact EMPs are hardly ever used in combat.

Now it's likely usage will increase, but I don't think by much. EMP capable items are hard to come by for non-Syndies, and they still remain a questionable choice because most combatants in any given fight will be entirely unaffected by EMPs. However, if a synthetic is a kill target, it's likely a wise Syndicate member would opt to get an EMP implant or EMP grenades. The stun and blindness effects make synths extremely vulnerable to EMPs. This feature can be tweaked post-merge if it's an issue.

The ninja also has an upper hand against synths due the EMP implant.

  • Synths are marked as "synthetic" in the examine text, and the typing indicator sprites are different.

This gives any non-synth trying to imitate a synth a disadvantage (e.g. someone in a hardsuit with stolen/agent ID and voice changer), since it would be immediately obvious they are not a synth when people examine them or hear them speak.

  • Synth brains are immediately recognizable as such.

This is notable because if you see gibs without an ID card but e.g. a logistics outfit, and the gibs happen include a synth brain, you can infer who might've died much easier if they were the only synth in the whole logi department, for instance.

  • Synths choosing glowy visors get glowy eye LEDs and cheek LEDs, and cast light.

For one, the LEDs do make them visible in the dark. You can cover your face which will obscure it somewhat, or hide in a locker. Or just not pick the glowy markings. This is only a disadvantage if you're trying to hide in the dark, and a self-imposed one. If you are trying to masquerade as non-synth just wear something obscuring your face and the "flashlight" effect goes away.

The light that the visor casts is technically a permanent flashlight, but it's weaker than the PDA flashlight, and also directional and colored. I think people usually aren't caught in the dark without a PDA or flashlight on them so the advantage is minimal.

Technical details

This changes some WizDen code to implement the typing indicator changes and cloning/metem functionality.

Known issues

Sometimes the light may not update but that's usually fixed by putting on/off something.

Media

Soon.

Thanks

To @LankLTE for the CD version and Aurora's contribs for the sprite.

Breaking changes

None I'm aware of.

Changelog

🆑

  • add: Added the Synthetic trait. This trait makes your character visibly synthetic to others. Great for making your character a cyborg or robot. Synths have full agency like other crew members, and do not have to follow any silicon laws.
  • add: The Synthetic trait lets you use cyborg emotes in addition to your regular emotes.
  • add: The Synthetic trait makes you vulnerable to EMP attacks, stunning and blinding you.
  • add: The brains of gibbed synthetic people can be inserted directly into a cyborg chassis, no MMI needed.

TODO

  • port lizard visor from cd
  • port antennae markings and stuff
  • maybe make a visor for vulp (their muzzle lends itself to it)
  • slime talk sprite
  • ion storm reaction
  • replacement emote sounds (need to tweak them until i'm happy)

LICENSE INFO: I expressly license all changes in this PR under the MIT license (and assets under their associated licenses). This is so that CD and other forks can use it without restriction. This means that, for instance, anyone is free to download the PR as patch (append .patch to the URL) and apply it to their fork under the MIT license. Future changes to the new source files I contributed should remain under MIT. A few snippets here and there (mostly yaml and ftl) were originally Cosmatic Drift code under the MIT. (Some of?) the markings are also from there.

@github-actions github-actions bot added Changes: C# Changes any cs files Changes: Documentation Changes any xml or md files Changes: Localization Changes any ftl files Changes: Sprite Changes any png or json in an rsi Changes: YML Changes any yml files labels Apr 17, 2024
@pissdemon pissdemon marked this pull request as draft April 17, 2024 01:06
Copy link
Contributor

github-actions bot commented Apr 17, 2024

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

Resources/Textures/DeltaV/Effects/speech_synth.rsi

State Old New Status
default0 Added
felinid0 Added
lizard0 Added
moth0 Added
slime0 Added
spider0 Added
vox0 Added

Resources/Textures/DeltaV/Mobs/Customization/Reptilian/visor.rsi

State Old New Status
head_ledvisor_primary Added
head_ledvisor_primary_dark Added
head_ledvisor_secondary Added
head_ledvisor_tertiary Added

Resources/Textures/DeltaV/Mobs/Customization/Synthetic/visor_glow.rsi

State Old New Status
eyesonly_glow Added
glow Added
off Added

Resources/Textures/DeltaV/Mobs/Customization/Vulpkanin/visor.rsi

State Old New Status
head_ledvisor_primary Added
head_ledvisor_primary_dark Added
head_ledvisor_secondary Added
head_ledvisor_tertiary Added

Resources/Textures/DeltaV/Mobs/Species/Synth/synth_brain.rsi

State Old New Status
brain-lights Added
brain Added

Resources/Textures/_CD/Mobs/Customization/synthetic.rsi

State Old New Status
synthetic_antenna_left Added
synthetic_antenna_right Added
synthetic_screen Added

Edit: diff updated after 3a600e4

@Bonktrauma
Copy link
Contributor

What will be the reaction to ion storm?

@pissdemon
Copy link
Contributor Author

pissdemon commented Apr 17, 2024

What will be the reaction to ion storm?

Still trying to figure it out. I want to make it more than just a notification, but it's hard to come up with something that would be interesting for the player without being (excessively) impairing or annoying.

@FaintSpeaker
Copy link

What if the Ion storm gave them one of the drug-related visual impairments at random? It's something significant that an ion storm at the right time can cause a delay in work, but doesn't last forever.

Alternatively, chance for auditory hallucinations from ion events, rather than chance for it from the psychic event?

@WarMechanic
Copy link
Contributor

WarMechanic commented Apr 18, 2024

Itd be cool if synthetic crewmembers had a way to digitally interface with cyborgs without needing to take their brains out (borrow a cyborg shell with no brain)

@pissdemon
Copy link
Contributor Author

@WarMechanic How do you imagine that working?

@WarMechanic
Copy link
Contributor

WarMechanic commented Apr 18, 2024

@WarMechanic How do you imagine that working?

Assuming that everything is technically feasible. I imagine how cyborgs in Ghost in the Shell or Cyberpunk etc are able to interface with machines with cables and I think its cool. I would probably have a tether radius in which a synthetic can temporarily transmit their mind to an empty cyborg. Of course this runs with the implication that you leave your original body in an exposed state, although you can simply drag it around with the borg you now control.

I think it would be cool to have scenarios where a synthetic requires the tools of a cyborg chassis, and chooses to salvage and drag it around.

@github-actions github-actions bot added the Status: Merge Conflict Fix your PR! label Apr 22, 2024
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 Status: Merge Conflict Fix your PR! label Apr 23, 2024
@TheGungeonologist
Copy link

Will the synthetic brain be passable as at least partially organic for rp purposes?

@pissdemon
Copy link
Contributor Author

Will the synthetic brain be passable as at least partially organic for rp purposes?

I've made it so that the "brain" is a housing that could contain electronics or an organic brain, so I would say it's passable.

@angelofallars
Copy link
Contributor

Will the synthetic brain be passable as at least partially organic for rp purposes?

This is the brain sprite in question:
image

I believe it's ambiguous enough that it could plausibly house either an organic brain or an MMI.

@github-actions github-actions bot added the Status: Merge Conflict Fix your PR! label May 18, 2024
Copy link
Contributor

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

Signed-off-by: no <165581243+pissdemon@users.noreply.github.com>
@github-actions github-actions bot removed the Status: Merge Conflict Fix your PR! label May 18, 2024
@Adrian16199
Copy link
Contributor

Since im seein here a balance change aka EMP's affectin you
Mind if I propose a change from SS13 on how simply synthetic humanoids are done?

Synthetic humanoids on specific SS13 fork have pretty much stats of
Immune to psionics (they dont but would make sense)
Immune to barotrauma damage but receive double the heat, cold and electricity
Dont need to breath
Cant be cloned due to no genes
To repair you, you need to weld for brute and wires for burns

Of course, I will probably note that this entire suggestion could be done separately and it could be like... an optional trait that only works if you have the first one turned on (aka this one that is being worked on)

Overall cool idea.

@pissdemon
Copy link
Contributor Author

I appreciate the input. This is mostly meant as a cosmetic trait to allow people to roleplay cyborgs or robots, so a lot of these aren't really relevant for this PR.

@Adrian16199
Copy link
Contributor

Sorry-
I just really like synth stuff and I feel like this trait would been the best option to allow every species to be synth and maybe even work like one without havin to do a big overhaul on character customization to allow for a synth species to look good, have stats like a cyborg but not just be limiting to how you look aka TV screen only but allow to maybe make a synth felinid.
SS13 changed my perspective on customization and I feel like this is the closest one could get to it.

@github-actions github-actions bot added the Status: Merge Conflict Fix your PR! label Aug 11, 2024
Copy link
Contributor

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

@Samsterious
Copy link
Contributor

I was going to request down the road that we port CD's synthetic trait anyways. I am 100% onboard with this implementation. Although we are not an HRP server, I would still like to trust our players with CD's improvisational cue (i.e. ion storms having no mechanical effect, just giving players an excuse to start behaving a little strangely and go roleplay with the Roboticist).

If it becomes a problem later, we can PR a mechanical effect afterward. For now, a little message in the chat like CD has is adequate.

@Timfa2112
Copy link
Contributor

@WarMechanic How do you imagine that working?

Inherent access to Binary channels would be neat, if you ask me

@TadJohnson00
Copy link
Contributor

Is this still being worked on @pissdemon?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Changes: C# Changes any cs files Changes: Documentation Changes any xml or md files Changes: Localization Changes any ftl files Changes: Sprite Changes any png or json in an rsi Changes: YML Changes any yml files Status: Merge Conflict Fix your PR! Status: Needs Review
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants