using Content.Shared.Alert; using Robust.Shared.Containers; using Robust.Shared.GameStates; using Robust.Shared.Prototypes; namespace Content.Shared.Ensnaring.Components; /// /// Use this on an entity that you would like to be ensnared by anything that has the /// [RegisterComponent, NetworkedComponent, AutoGenerateComponentState(true)] public sealed partial class EnsnareableComponent : Component { /// /// How much should this slow down the entities walk? /// [DataField, AutoNetworkedField] public float WalkSpeed = 1.0f; /// /// How much should this slow down the entities sprint? /// [DataField, AutoNetworkedField] public float SprintSpeed = 1.0f; /// /// Is this entity currently ensnared? /// [DataField, AutoNetworkedField] public bool IsEnsnared; /// /// The container where the entity will be stored /// public Container Container = default!; [DataField] public string? Sprite; [DataField] public string? State; [DataField] public ProtoId EnsnaredAlert = "Ensnared"; } public sealed partial class RemoveEnsnareAlertEvent : BaseAlertEvent; public sealed class EnsnaredChangedEvent : EntityEventArgs { public readonly bool IsEnsnared; public EnsnaredChangedEvent(bool isEnsnared) { IsEnsnared = isEnsnared; } }