Files
92b66248ef [Ready for Review] Round Removal Opt-In (#2122)
## About The Pull Request

This creates a round removal opt in system for Bubberstation. Same thing
I tried to do upstream at
https://github.com/Skyrat-SS13/Skyrat-tg/pull/27473 but now I'm doing it
down here because we will be rebasing in the future and their vision is
not in line with ours. This is a modified version of Nova's antag opt
in.

With this PR players will be allowed to opt in to being round removed.
This primarily benefits antags as security and non antags generally
can't round remove unless specific conditions are met.

This is currently a WIP

It works sorta like this: 
**Example 0**
*Eats-The-Towels* the moth-lizard heretic has fought with security and
has managed to kill the entire team multiple times. Security has once
again found her. She examines the security officers and sees that none
of them have round removal enabled.
While she wouldn't have been able to round remove them during the
earlier fights because none of the security team had RR enabled, she can
RR them now that they have respawned multiple times and continue to
pursue her. This is how current Bubberstation rules function and will
continue to function with this PR.

**Example 1**
If _Ms. Syndiecool_ examines John Assistant and sees a "Round Removal:
Yes" in his examine, Ms. Syndiecool now knows that she can kill John and
not have to worry about making sure his body gets to the medbay. She
could even make his body difficult to find, or if the situation calls
for it, she could destroy his body. She's not encouraged to remove him
from the round, but she's also not encouraged to make sure his body is
located quickly and readily.

**Example 2**
*Terry Lingston* wants to kill John Assistant and assume his identity.
- Under traditional Bubberstation rules, Terry could absorb John and
take his gear, but she would have to allow John to be revived, which
will cause problems when the rest of the crew realizes there are two
John Assistants.
- With the addition of Round Removal opt-in, Terry examines John and
sees that John has opted into round removal. Terry can now absorb John
and take his gear, then dispose of his body to discard the evidence and
fully assume John's identity.

**Example 3**
*Buffy Bloodsucker* gets into a confrontation with John Assistant in
maintenance. She successfully defeats him but medical notices him dead
and is already en route. She examines John and sees he has **"Round
Removal: No"** as his preference. She knows she can't hide the body
because that would be in violation of the round removal policy, John has
not opted into being round removed, so she chooses to leave the body
with sensors in tact and run away before anyone sees her.

**Example 4**
*Rouny* the xenomorph runner has successfully facehugged John Assistant,
and drags him back to the hidden xeno hive. Rouny examines John and sees
his **"Round Removal: No"** preference. Rouny knows that his preference
**does not matter** because Xenomorphs, being a potentially round-ending
threat and beholden to a permanent mechanical state, do not fall under
the same standard as crew or less mechanically oriented antags.

## Why It's Good For The Game

This PR will lay the groundwork for improving what antags can do while
still allowing people who wish to remain in round to remain in round
under standard circumstances. A policy rewrite will accompany this PR.

- [x] Modularize
- [x] Clean up and rewrite to binary setting (opt in or opt out)
- [x] Determine who gets it by default
- [x] Logging for pref changes or mob-pref-on-death or something so
people can't change the pref after dying and try to report someone
- [x] CODE REVIEW
- [x] Policy
- [ ] Test Merge for functionality of preferences and kill objectives
and policy
- [ ] FINAL CODE REVIEW 
- [ ] Squash and Merge

## Proof Of Testing

It worked locally 🤷 

## Changelog

🆑
add: Added a round removal opt-in preference.
/🆑

---------

Co-authored-by: Waterpig <wtryoutube@seznam.cz>
Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com>
Co-authored-by: Waterpig <49160555+Majkl-J@users.noreply.github.com>
Co-authored-by: nevimer <77420409+nevimer@users.noreply.github.com>
Co-authored-by: Roxy <75404941+TealSeer@users.noreply.github.com>
2025-03-25 15:09:48 -04:00

891 B

https://github.com/Bubberstation/Bubberstation/pull/2122

Original PR: https://github.com/NovaSector/NovaSector/pull/121

<Title Round Removal Opt In>

Module ID: RR_OPTIN

Description:

Adds functionality to allow players to 'opt-in' to being round removed.

TG Proc/File Changes:

  • death.dm (death logging)

Modular Overrides:

  • N/A

Config:

  • /datum/config_entry/flag/rr_opt_level_default - TRUE or FALSE, defines default opt in for all
  • /datum/config_entry/flag/use_rr_opt_in_preferences - TRUE or FALSE, defines whether RR prefs are used

Included files that are not contained in this module:

  • tgui\packages\tgui\interfaces\PreferencesMenu\preferences\features\character_preferences\bubber\round_remove.tsx

Credits:

  • Swiftfeather - Retooling for Bubberstation and Round Removal.
  • niko - for doing stuff and taking over
  • plum - the original author