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鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adds toggleable clonability to cloneable races #18908

Closed
wants to merge 2 commits into from
Closed

Adds toggleable clonability to cloneable races #18908

wants to merge 2 commits into from

Conversation

Miraviel
Copy link
Contributor

@Miraviel Miraviel commented Aug 27, 2022

THIS IS ONLY FOR SPECIES THAT CAN BE CLONED. UNCLONEABLE SPECIES CANNOT TOGGLE THIS.
THIS IS ONLY FOR SPECIES THAT CAN BE CLONED. UNCLONEABLE SPECIES CANNOT TOGGLE THIS.
THIS IS ONLY FOR SPECIES THAT CAN BE CLONED. UNCLONEABLE SPECIES CANNOT TOGGLE THIS.

What Does This PR Do

This PR adds a "disability" in character setup that allows you to make your species-wise cloneable character uncloneable. By default, it is set to "no" as all other disabilities.

Do YOU hate the cloner? Become uncloneable today!

Slime people, vox, and IPC cannot access this. Even if they can access it, this is not a toggle. This is either you add this trait or not, and if you toggle it on your human, switch to vox, save it in preferences, you won't get this trait, I added an extra check. (You would be just double uncloneable, anyhow.)

This trait cannot be accessed via genetics and there is no other way to get it other than 1) character creation 2) admin intervention. You also cannot lose this trait with in-game methods.

I also added this trait to the admin "add trait" verb.

Why It's Good For The Game

  1. I have seen players roleplaying that their character is not cloneable. This makes it mechanically possible. With this, doctors won't keep shoving people into the tube who otherwise don't want to be cloned and won't mistake their non-reaction to being SSD.
  2. Some people want Medbay to make more effort than shoving them into the tube. With this, they will be able to make us them suffer.
  3. This is entirely optional and it is only making your character "weaker". There is no powergaming possibility with this (to my understanding).

Images of changes

Checked character creation with both cloneable and uncloneable species.

Vox:

image

Vulpkanin:

image

Trying to scan a person with this disability:

image

Testing

  1. Made a human character, toggled uncloneability on
  2. Spawned in, spawned in a slime person
  3. Murdered human
  4. Put human into cloner
  5. Cannot be cloned

Changelog

馃啈
add: Added a new disability on the character creation scene, "uncloneable", to cloneable races. By turning it on, the cloner will not be able to scan your character. It starts turned off by default.
/:cl:

@ParadiseSS13-Bot ParadiseSS13-Bot added the -Status: Awaiting type assignment This PR is waiting for its type to be assigned internally label Aug 27, 2022
@Miraviel
Copy link
Contributor Author

Set it to WIP to gather feedback, the code is ready(???) and working.

Copy link
Member

@SteelSlayer SteelSlayer left a comment

Choose a reason for hiding this comment

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

There really should not be two similarly named but different traits for this. And we should not be checking both species_traits and the mob for it.

I say keep the current method of NO_CLONESCAN in mob.dna.species.species_traits over HAS_TRAIT(mob, TRAIT_NO_CLONESCAN).

@Miraviel
Copy link
Contributor Author

There really should not be two similarly named but different traits for this. And we should not be checking both species_traits and the mob for it.

I say keep the current method of NO_CLONESCAN in mob.dna.species.species_traits over HAS_TRAIT(mob, TRAIT_NO_CLONESCAN).

It is the same trait, I replaced all NO_CLONESCAN with TRAIT_NO_CLONESCAN, to be in-line with other traits. The DISABILITY_FLAG_NO_CLONESCAN is just for numbers, or I might be misunderstanding you.

Do you mean that I should add this to the character's species traits?

@SteelSlayer
Copy link
Member

SteelSlayer commented Aug 27, 2022

@Miraviel Basically, keep it NO_CLONESCAN, and yeah only have it in the one location, that being their species_traits. The rename isn't necessary imo, since this is a species trait, it's not apart of the other trait system (the one that uses ADD_TRAIT, HAS_TRAIT, etc.)

@AffectedArc07 AffectedArc07 added the Tweak This PR tweaks something ingame label Aug 27, 2022
@AffectedArc07
Copy link
Member

Im fine with this.


To all the nay-sayers, I raise you this. Whats stopping people from just going Set DNR every time they die? This is basically just a pref for default DNR, its just a timesaver.

@ParadiseSS13-Bot ParadiseSS13-Bot added -Status: Awaiting approval This PR is waiting for approval internally and removed -Status: Awaiting type assignment This PR is waiting for its type to be assigned internally labels Aug 27, 2022
@Coolrune206
Copy link
Contributor

Is there any indication of this before you try to pop someone in the cloner that they cannot be cloned? With Vox and Slimes, you know they can't be cloned because of their species. If there isn't already an indicator of "This person is incompatible with cloning" on the Health Analyzer, it might be rather helpful to add it, for Doctors' clarity.

@ParadiseSS13-Bot ParadiseSS13-Bot added -Status: Awaiting review This PR is awaiting review from the review team and removed -Status: Awaiting approval This PR is waiting for approval internally labels Aug 28, 2022
@Miraviel Miraviel changed the title WIP: Adds toggleable clonability to cloneable races Adds toggleable clonability to cloneable races Aug 29, 2022
@Miraviel
Copy link
Contributor Author

Code is still not good, I could not yet find a solution to what SteelSlayer asked from me.

There should be a way to add NO_CLONESCAN to the mob's species_traits from character setup (so we can handle the two NO_CLONESCAN checks in one go in the cloner), but if I try to add it to their species traits, it ends up in the body's DNA, not the brain's DNA (and we need the brain's DNA, as the cloner checks for brain).

If anyone can come up with a solution to this, that'd be appreciated.

@Coolrune206 Is there any indication of this before you try to pop someone in the cloner that they cannot be cloned? With Vox and Slimes, you know they can't be cloned because of their species. If there isn't already an indicator of "This person is incompatible with cloning" on the Health Analyzer, it might be rather helpful to add it, for Doctors' clarity.

Was considering it adding it to the health analyzer, but ultimately decided against it for the following reasons:

  • The health analyzer already shows a wall of text and this is not an information pertaining to their immediate revival (<5 minutes).
  • If the analyzer mentioned cloning, it would encourage cloning and I would rather new doctors not be conditioned to clone people.
  • If the analyzer mentioned that the person is uncloneable, then all uncloneable species would trigger this message.
  • This would make triaging more important. Treat every person uncloneable until the time is up.

However, if people prefer uncloneable people to be displayed on the analyzer, I can add it, but keep in mind that it will then show for every single vox and slime people as well.

@@ -20,6 +20,7 @@
#define DISABILITY_FLAG_DIZZY 512
#define DISABILITY_FLAG_CHAV 1024
#define DISABILITY_FLAG_DEAF 2048
#define DISABILITY_FLAG_NO_CLONESCAN 4096
Copy link
Contributor

Choose a reason for hiding this comment

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

could you please bump up the indentation on the values above so they're inline?

Copy link
Member

Choose a reason for hiding this comment

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

also would you make you convert these to use the bitshift operator while you are at it.

#define NO_HAIR "no_hair"
#define TRAIT_NO_CLONESCAN "no_clonescan"
Copy link
Contributor

Choose a reason for hiding this comment

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

same here

@Miraviel
Copy link
Contributor Author

Miraviel commented Sep 4, 2022

This is getting closed until I learn more of dna2 and how species_trait works, because at the moment, I cannot figure out what Steel asked from me. rip

@Miraviel Miraviel closed this Sep 4, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
-Status: Awaiting review This PR is awaiting review from the review team Tweak This PR tweaks something ingame
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

7 participants