## Mirror of PR #25978: [Fix SCRAM implant not working while cuffed.
Incidentally fix freedom implant working while
dead/crit](https://github.com/space-wizards/space-station-14/pull/25978)
from <img src="https://avatars.githubusercontent.com/u/10567778?v=4"
alt="space-wizards" width="22"/>
[space-wizards](https://github.com/space-wizards)/[space-station-14](https://github.com/space-wizards/space-station-14)
###### `22e9d6562f21bdd4f0962d6e3b6fcdd81bb4c253`
PR opened by <img
src="https://avatars.githubusercontent.com/u/32041239?v=4"
width="16"/><a href="https://github.com/nikthechampiongr">
nikthechampiongr</a> at 2024-03-10 19:33:05 UTC
---
PR changed 13 files with 142 additions and 3 deletions.
The PR had the following labels:
- Status: Needs Review
---
<details open="true"><summary><h1>Original Body</h1></summary>
> fixes#25662
>
> <!-- Please read these guidelines before opening your PR:
https://docs.spacestation14.io/en/getting-started/pr-guideline -->
> <!-- The text between the arrows are comments - they will not be
visible on your PR. -->
>
> ## About the PR
> <!-- What did you change in this PR? -->
> This pr makes it so you can use the SCRAM implant while cuffed. Also
fixes the freedom implant working while you are in crit, or even dead.
>
> ## Why / Balance
> <!-- Why was it changed? Link any discussions or issues here. Please
discuss how this would affect game balance. -->
> The implant is made so you can escape horrible situations. It should
as such work while in crit.
>
> ## Technical details
> <!-- If this is a code change, summarize at high level how your new
code works. This makes it easier to review. -->
> ActionBlockers now has a specific check to see if someone is
conscious. It is also used in the Interaction check now. Actions can now
use that check if the bool is set. The bool is now set for the freedom
and SCRAM! implant actions. Additionally the SCRAM! action now ignores
whether the user can interact in order to be able to use it while
cuffed.
>
> ## Media
> <!--
> PRs which make ingame changes (adding clothing, items, new features,
etc) are required to have media attached that showcase the changes.
> Small fixes/refactors are exempt.
> Any media may be used in SS14 progress reports, with clear credit
given.
>
> If you're unsure whether your PR will require media, ask a maintainer.
>
> Check the box below to confirm that you have in fact seen this (put an
X in the brackets, like [X]):
> -->
>
> - [x] I have added screenshots/videos to this PR showcasing its
changes ingame, **or** this PR does not require an ingame showcase
>
> ## Breaking changes
> <!--
> List any breaking changes, including namespace, public
class/method/field changes, prototype renames; and provide instructions
for fixing them. This will be pasted in #codebase-changes.
> -->
>
> **Changelog**
> <!--
> Make players aware of new features and changes that could affect how
they play the game by adding a Changelog entry. Please read the
Changelog guidelines located at:
https://docs.spacestation14.io/en/getting-started/pr-guideline#changelog
> -->
>
> <!--
> Make sure to take this Changelog template out of the comment block in
order for it to show up.
> 🆑
> - add: Added fun!
> - remove: Removed fun!
> - tweak: Changed fun!
> - fix: Fixed fun!
> -->
> 🆑
> fix: You can now use the SCRAM! implant while cuffed.
> fix: The freedom implant can no longer be used while in crit, or dead.
</details>
Co-authored-by: SimpleStation14 <Unknown>
* Use new Subs.CVar helper
Removes manual config OnValueChanged calls, removes need to remember to manually unsubscribe.
This both reduces boilerplate and fixes many issues where subscriptions weren't removed on entity system shutdown.
* Fix a bunch of warnings
* More warning fixes
* Use new DateTime serializer to get rid of ISerializationHooks in changelog code.
* Get rid of some more ISerializationHooks for enums
* And a little more
* Apply suggestions from code review
Co-authored-by: 0x6273 <0x40@keemail.me>
---------
Co-authored-by: 0x6273 <0x40@keemail.me>
(cherry picked from commit 68ce53ae17985876d6d112b764b2144964a9f42e)
* Adds uses before delay so actions can be used multiple times before cooldown
* adds methods to get remaining charges, to set uses before delay, and to set use delay
* adds method to change action name
* moves set usedelay
* action upgrade ECS
* adds method to reset remaining uses
* adds upgrade events
* refactors action upgrade event and adds logic to parse it
* fix serialization issue
* adds level up draft method
* adds action commands and a command to upgrade an action
* more warning lines to help
* Gets action to upgrade properly
* Removes unneeded fields from the action upgrade component and now properly raises the level of the new action
* Cleans up dead code and comments
* Fixes punctuation in actions-commands and adds a TryUpgradeAction method.
* removes TODO comment
* robust fix
* removes RT
* readds RT
* update RT to 190
* removes change name method
* removes remaining uses & related fields and adds that functionality to charges
* Adds Charges to action tooltips that require it
* attempt at moving MainViewport to UIWidget
* oldchat (prototype)
* separate oldchat and default ss14 HUD into their own files
* restores original default game screen logic and adds that logic into separated chat game screen
* hand reloading, several tweaks to port oldchat to main ss14 branch
oldchat is currently not selectable
* screen type cvar, gameplay state screen reloading/loading
* reload screen on ui layout cvar change
* fixes up basic reloading (HUD switching is still very bad)
* some UI widget reloading for main UI screen switching
* alert sync on screen change
* inventory reload
* hotbar margin fix
* chat bubbles above viewport
* whoops
* fixes ordering of speech bubble root
* should fix the chat focus issue (at least in-game, not lobby yet)
* should fix up the lobby/game chat focus
* fixes chat for lobby, turns lobby into a UI state
* viewport UI controller
* viewport ratio selection
* whoops
* adds the /tg/ widescreen ratio
* removes warning from inventory UI controller, adds background to separated chat game screen's chat portion
* menu button reload
* unload menu buttons only from gameplay state shutdown
* bugfix
* character button fix
* adds config options for viewport width/UI layout
* variable naming changes, get or null instead of get to avoid exceptions
* moves entity system get into controller
* Rejig Actions
* fix merge errors
* lambda-b-gon
* fix PAI, add innate actions
* Revert "fix PAI, add innate actions"
This reverts commit 4b501ac083e979e31ebd98d7b98077e0dbdd344b.
* Just fix by making nullable.
if only require: true actually did something somehow.
* Make AddActions() ensure an actions component
and misc comments
* misc cleanup
* Limit range even when not checking for obstructions
* remove old guardian code
* rename function and make EntityUid nullable
* fix magboot bug
* fix action search menu
* make targeting toggle all equivalent actions
* fix combat popups (enabling <-> disabling)
* fix networking
* Allow action locking
* prevent telepathy
* Rejig Actions
* fix merge errors
* lambda-b-gon
* fix PAI, add innate actions
* Revert "fix PAI, add innate actions"
This reverts commit 4b501ac083e979e31ebd98d7b98077e0dbdd344b.
* Just fix by making nullable.
if only require: true actually did something somehow.
* Make AddActions() ensure an actions component
and misc comments
* misc cleanup
* Limit range even when not checking for obstructions
* remove old guardian code
* rename function and make EntityUid nullable
* fix magboot bug
* fix action search menu
* make targeting toggle all equivalent actions
* fix combat popups (enabling <-> disabling)