Fix SCRAM implant not working while cuffed. Incidentally fix freedom implant working while dead/crit (#25978)

* Fix SCRAM implant not being usable while in cuffs. Also fix freedom implant from working while dead/crit as a side effect

* Move check up to apply to all actions and do thing I forgor to do before

* Change check into an ActionBlocker check that also checks whether the user is sleeping.

* Make checking for Consciousness the default for actions

Went through and chose what I believe to be sensible defaults for actions that had CheckCanInteract.

* Fix typos my beloved

I had an unbelievable skill issue

* Fix major skill issue
This commit is contained in:
nikthechampiongr
2024-03-19 00:35:46 +02:00
committed by GitHub
parent 5185a4a6b3
commit 22e9d6562f
13 changed files with 142 additions and 3 deletions

View File

@@ -1,4 +1,5 @@
using Robust.Shared.Audio;
using Content.Shared.Mobs;
using Robust.Shared.Audio;
using Robust.Shared.Serialization;
using Robust.Shared.Utility;
@@ -118,6 +119,12 @@ public abstract partial class BaseActionComponent : Component
/// </summary>
[DataField("checkCanInteract")] public bool CheckCanInteract = true;
/// <summary>
/// Whether to check if the user is conscious or not. Can be used instead of <see cref="CheckCanInteract"/>
/// for a more permissive check.
/// </summary>
[DataField] public bool CheckConsciousness = true;
/// <summary>
/// If true, this will cause the action to only execute locally without ever notifying the server.
/// </summary>
@@ -177,6 +184,7 @@ public abstract class BaseActionComponentState : ComponentState
public NetEntity? Container;
public NetEntity? EntityIcon;
public bool CheckCanInteract;
public bool CheckConsciousness;
public bool ClientExclusive;
public int Priority;
public NetEntity? AttachedEntity;
@@ -204,6 +212,7 @@ public abstract class BaseActionComponentState : ComponentState
MaxCharges = component.MaxCharges;
RenewCharges = component.RenewCharges;
CheckCanInteract = component.CheckCanInteract;
CheckConsciousness = component.CheckConsciousness;
ClientExclusive = component.ClientExclusive;
Priority = component.Priority;
AutoPopulate = component.AutoPopulate;