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;