using Content.Shared.ActionBlocker; using Content.Shared.Item.ItemToggle.Components; namespace Content.Shared.Stunnable; public abstract class SharedStunbatonSystem : EntitySystem { [Dependency] private readonly ActionBlockerSystem _actionBlocker = default!; public override void Initialize() { base.Initialize(); SubscribeLocalEvent(TryTurnOn); SubscribeLocalEvent(TryTurnOff); } protected virtual void TryTurnOn(Entity entity, ref ItemToggleActivateAttemptEvent args) { if (args.User != null && !_actionBlocker.CanComplexInteract(args.User.Value)) { args.Cancelled = true; return; } } protected virtual void TryTurnOff(Entity entity, ref ItemToggleDeactivateAttemptEvent args) { if (args.User != null && !_actionBlocker.CanComplexInteract(args.User.Value)) { args.Cancelled = true; return; } } }