diff --git a/Content.Shared/Cuffs/SharedCuffableSystem.cs b/Content.Shared/Cuffs/SharedCuffableSystem.cs index cd16b0bc33..978e1ed67e 100644 --- a/Content.Shared/Cuffs/SharedCuffableSystem.cs +++ b/Content.Shared/Cuffs/SharedCuffableSystem.cs @@ -9,6 +9,7 @@ using Content.Shared.Damage; using Content.Shared.Database; using Content.Shared.DoAfter; using Content.Shared.Effects; +using Content.Shared.Glue; using Content.Shared.Hands; using Content.Shared.Hands.Components; using Content.Shared.Hands.EntitySystems; @@ -18,6 +19,7 @@ using Content.Shared.Interaction.Components; using Content.Shared.Interaction.Events; using Content.Shared.Inventory.Events; using Content.Shared.Item; +using Content.Shared.Lube; using Content.Shared.Mobs.Systems; using Content.Shared.Movement.Events; using Content.Shared.Physics.Pull; @@ -59,6 +61,7 @@ namespace Content.Shared.Cuffs [Dependency] private readonly SharedPopupSystem _popup = default!; [Dependency] private readonly SharedTransformSystem _transform = default!; [Dependency] private readonly IGameTiming _gameTiming = default!; // Parkstation-EndOfRoundStats + [Dependency] private readonly MetaDataSystem _metaData = default!; // WD public override void Initialize() { @@ -453,6 +456,21 @@ namespace Content.Shared.Cuffs if (!_interaction.InRangeUnobstructed(handcuff, target)) return false; + // WD START + if (TryComp(handcuff, out GluedComponent? glue)) + { + _metaData.SetEntityName(handcuff, glue.BeforeGluedEntityName); + RemComp(handcuff); + RemComp(handcuff); + } + + if (TryComp(handcuff, out LubedComponent? lube)) + { + _metaData.SetEntityName(handcuff, lube.BeforeLubedEntityName); + RemComp(handcuff); + } + // WD END + // Success! _hands.TryDrop(user, handcuff); diff --git a/Content.Shared/Storage/Components/SharedEntityStorageComponent.cs b/Content.Shared/Storage/Components/SharedEntityStorageComponent.cs index b4cd18f4d5..e5b32de1fb 100644 --- a/Content.Shared/Storage/Components/SharedEntityStorageComponent.cs +++ b/Content.Shared/Storage/Components/SharedEntityStorageComponent.cs @@ -22,6 +22,7 @@ public abstract partial class SharedEntityStorageComponent : Component public readonly int MasksToRemove = (int) ( CollisionGroup.MidImpassable | CollisionGroup.HighImpassable | + CollisionGroup.MobLayer | // WD CollisionGroup.LowImpassable); /// diff --git a/Resources/Prototypes/Entities/Structures/Doors/Airlocks/highsec.yml b/Resources/Prototypes/Entities/Structures/Doors/Airlocks/highsec.yml index ae2ef01b19..ea5a9b211d 100644 --- a/Resources/Prototypes/Entities/Structures/Doors/Airlocks/highsec.yml +++ b/Resources/Prototypes/Entities/Structures/Doors/Airlocks/highsec.yml @@ -102,3 +102,4 @@ tags: - HighSecDoor # This tag is used to nagivate the Airlock construction graph. It's needed because this construction graph is shared between Airlock, AirlockGlass, and HighSecDoor + - type: ReflectAspectMark