using Content.Shared._DV.Grappling.EntitySystems; using Content.Shared.Alert; using Content.Shared.DoAfter; using Robust.Shared.GameStates; namespace Content.Shared._DV.Grappling.Components; /// /// Marks this entity as having been grappled. /// [RegisterComponent, NetworkedComponent] [Access(typeof(SharedGrapplingSystem))] public sealed partial class GrappledComponent : Component { /// /// The entity which is performing the grapple. /// [DataField] public EntityUid Grappler = EntityUid.Invalid; /// /// How much time is required to escape. /// [DataField] public TimeSpan EscapeTime = TimeSpan.FromSeconds(15); /// /// The in-progress DoAfter, if any. /// Used to cancel the doAfter if the grappler manually releases their victim. /// [DataField] public DoAfterId? DoAfterId = null; /// /// A list of all hands, if any, that have been disabled as part of the grapple /// via a virtual item. /// [DataField] public List DisabledHands = new(); } /// /// Raised when a player manually clicks the grappled icon to begin attempting to escape. /// public sealed partial class EscapeGrappleAlertEvent : BaseAlertEvent;