using Content.Shared.FixedPoint; using Robust.Shared.GameStates; namespace Content.Shared.DoAfter; /// /// For setting DoAfterArgs on an entity level /// Would require some setup, will require a rework eventually /// [RegisterComponent, NetworkedComponent] [Access(typeof(SharedDoAfterSystem))] public sealed partial class DoAfterArgsComponent : Component { #region DoAfterArgsSettings /// /// /// [DataField] public AttemptFrequency AttemptFrequency; /// /// /// [DataField] public bool Broadcast; /// /// /// [DataField] public TimeSpan Delay = TimeSpan.FromSeconds(2); /// /// /// [DataField] public bool Hidden; /// /// Should this DoAfter repeat after being completed? /// [DataField] public bool Repeat; #region Break/Cancellation Options /// /// /// [DataField] public bool NeedHand; /// /// /// [DataField] public bool BreakOnHandChange = true; /// /// /// [DataField] public bool BreakOnDropItem = true; /// /// /// [DataField] public bool BreakOnMove; /// /// /// [DataField] public bool BreakOnWeightlessMove = true; /// /// /// [DataField] public float MovementThreshold = 0.3f; /// /// /// [DataField] public float? DistanceThreshold; /// /// /// [DataField] public bool BreakOnDamage; /// /// /// [DataField] public FixedPoint2 DamageThreshold = 1; /// /// /// [DataField] public bool RequireCanInteract = true; // End Break/Cancellation Options #endregion /// /// What should the delay be reduced to after completion? /// [DataField] public TimeSpan? DelayReduction; // End DoAfterArgsSettings #endregion }