using Content.Shared.Physics; using Content.Shared.Whitelist; using Robust.Shared.GameStates; namespace Content.Shared.Trigger.Components.Effects; /// /// Generates a gravity pulse/repulse using the RepulseAttractComponent around the entity when triggered. /// If TargetUser is true their location will be used instead. /// [RegisterComponent, NetworkedComponent, AutoGenerateComponentState] public sealed partial class RepulseAttractOnTriggerComponent : BaseXOnTriggerComponent { /// /// How fast should the Repulsion/Attraction be? /// A positive value will repulse objects, a negative value will attract. /// [DataField, AutoNetworkedField] public float Speed = 5.0f; /// /// How close do the entities need to be? /// [DataField, AutoNetworkedField] public float Range = 5.0f; /// /// What kind of entities should this effect apply to? /// [DataField, AutoNetworkedField] public EntityWhitelist? Whitelist; /// /// What collision layers should be excluded? /// The default excludes ghost mobs, revenants, the AI camera etc. /// [DataField, AutoNetworkedField] public CollisionGroup CollisionMask = CollisionGroup.GhostImpassable; }